网络通信学习笔记之——计算机网络基础知识

一、计算机网络基础知识

1、什么是计算机网络

​ 把分布在不同地理位置的计算机与专门的网络设备用通信线路互相连成一个规模大、功能强的系统, 从而使众多计算机可以方便地互相传递信息、共享软件、硬件、数据信息等。

​ 计算机网络就是由通信线路互相连接的许多自主工作的计算机构成的的集合,它是计算机技术和通信 技术相结合的产物。

2、计算机网络的功能

​ 数据通信、资源共享、提高系统的可靠性、分布式网络处理和负载均衡。

3、计算机网络的组成

1、通信子网

  • 网卡:网络接口卡或网络适配器、它负责将数据发送网络中去,也负责从网络中获取数据。

  • 线缆、中继器:传输信号,放大信号。

  • 交换机:是一个扩大网络的器材,能为子网络中提供更多的连接端口,以便连接更多的计算机。

  • 路由器:路由器是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包 中的地址然后决定如何传送的专用智能性的网络设备。

它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。这样, 路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成 TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。

2、资源子网

由连网的服务器、工作站、共享的打印机和其它设备及相关软件所组成。

3、计算机网络软件

协议软件:

​ 它规定了计算机之间通信的准则,按网络所采用的协议层次模型(如ISO建议的开放系统互连基本参考 模型)组织而成。除物理层外,其余各层协议大都由软件实现。

​ 每层协议软件通常由一个或多个进程组成,其主要任务是完成相应层协议所规定的功能,以及与上、 下层的接口功能。

网络通信软件:

​ 主要工作是监督和控制通信工作的软件,是计算机网络软件的基础组成部分。还可以让计算机与其它 计算机通信。

​ 通信软件一般由线路缓冲区管理程序、线路控制程序以及报文管理程序组成。报文管理程序一般由接 收、发送、收发记录、差错控制、开始和终了5个部分组成。

网络操作系统:

​ 网络操作系统是用于管理网络软、硬资源,提供简单网络管理的系统软件。常见的网络操作系统有 UNIX、Netware、Windows NT、Linux等。

网络应用软件:

​ 主要任务是实现网络总体规划所规定的各项功能,提供网络服务和资源共享。网络应用软件有通用和 专用之分。

通用网络应用系统适用于较广泛的领域和行业,如数据收集系统、数据转发系统和数据库查询系统 等,专用网络应用系统只适用于特定的行业和领域,如银行核算、铁路控制、军事指挥等。

4、计算机网络的分类

  • 1、按网络的作用范围、规模划分

    局域网、城域网、广域网

  • 2、按网络传播技术划分

    广播式网络、点到点网络

  • 3、传输介质划分

    有线网、无线网、微波通信、卫星通信

5、计算机网络的发展过程

  • 1、以计算机为中心的联机系统

  • 2、分组交换网络的诞生

  • 3、网络体系结构与协议标准化

    20世纪80年代 ISO组织提出 开放式系统互联参考模型OSI,由于这个模型照顾到了各方和利益所以 太过庞大,因此至今没有推出成熟的产品,TCP/IP是一套符合OSI标准的协议。

  • 4、高速计算机网络5G、6G

6、OSI七层网络模型

​ 网络协议是为网络数据交换而制定的规则、约定、标准, 一个功能完备的计算机网络需要制定一整 套复杂的协议集,网络协议是按层次结构来组织的,网络层次结构模型与各层协议的集合称为网络体系 结构。

​ 开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI),简称为OSI模型(OSI model),一种概念模型,由国际标准化组织提出,一个试图使各种计算 机在世界范围内互连为网络的标准框架。OSI将计算机网络体系结构(architecture)划分为以下七层:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3Jd9fvYX-1666927252832)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028105726631.png)]

物理层: 将数据转换为可通过物理介质传送的电子信号 相当于邮局中的搬运工人。

数据链路层: 决定访问网络介质的方式,在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬 件寻址,相当于邮局中的装拆箱工人。

网络层: 使用权数据路由经过大型网络 相当于邮局中的排序工人。

传输层: 提供终端到终端的可靠连接 相当于公司中跑邮局的送信职员。

会话层: 允许用户使用简单易记的名称建立连接 相当于公司中收寄信、写信封与拆信封的秘书。

表示层: 协商数据交换格式 相当公司中简报老板、替老板写信的助理。

应用层: 用户的应用程序和网络之间的接口。

7、TCP/IP模型四层

​ 既然有了OSI 模型标准,为什么还会有TCP/IP模型呢?在OSI模型开发出来之后,人们发现很多层次制 定的过于详细了,比如应表会这上三层,数据在这3层是不发生任何变化的,它们仅仅是给用户提供接口 以及提供一个加密功能,而且有一些层次的功能是冲突的,或者有一些层次其实没有必要区分的那么清 楚,所以后来人们在使用过程中就把OSI这个模型做了一个整合,把七层整合成了四层,这就形成了 TCP/IP模型。

如下图所示。它把上三层合并成了应用层,传输层、网络层保持不变,然后把物理层和数据链路层做 了一个合并,合并为网络接口层。从而就把7层模型变成了四层,当然这4层模型的功能和七层模型是完 全一样的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EiMXn20V-1666927252833)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028105750838.png)]

**物理层:**负责通信网络收发数据包

**网络层:**选择、流量控制、与网络拥塞问题,IP协议是该层核心。

**传输层:**机器之间建立用于会话的端到端连接(用于数据的传输),该层的核心协议是TCP、UDP协 议。

**应用层:**主要为用户提供针对性的服务,该层代表性的协议有:HTTP、SMTP、FTP、TELNET。

​ 但是有的人提出了异议,认为合并上三层可以,但是不能合并物理层和数据链路层,因为这两层的功 能是完全不一样的,所以在吸取了大家的意见之后,TCP/IP模型也被修改成了五层结构,仅仅是把上三 层进行了合并,下四层保持不变,如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FbqOQdEQ-1666927252835)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028105903756.png)]

8、MAC地址、IP地址、域名、DNS服务器

MAC地址:

​ 也叫物理地址,每张网卡在生产时厂家就是固化一个48位的地址(6个字节,通常表示为12个16进制 数,如:00-16-EA-AE-3C-40),此地址全世界唯一,交换机路由器以此来确认网络设备位置的位址, 缺点是不方便记忆、不够灵活,但它是网警打击网络犯罪的最要证据之一。

IP地址:

​ IP 地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆,方便划分子网,因此在计算机网络 中表面上使用IP进行通信,目前由4个不超过255的整数组成,一般用点分十进制表示 (192.168.2.180)。 而在交换机、路由器中有张ARP表,一列记录MAC,另一列记录IP地址,通过ARP协议的RARP协议可 以对IP地址和MAC地址进行转换。

域名:

​ 由于普通人很难记忆大量IP地址,便有了代替IP地址的文字,也就是域名,普通人通过在浏览器中输 入域名来访问各种网站,但域名最终还是要翻译成IP地址才能进行网络间通信的,域名需要从域名服务 商处购买,也可以从组织或个人处转让。

DNS服务器:

网络中有一种专门提供翻译域名服务的计算机叫DNS服务器,它负责把域名翻译成IP地址,需要在政 府部分备案并缴纳一些费用才能加入DNS服务器。

二、IP地址

1、IPv4地址

​ IPv4地址的概念是在1980年代初期提出的。即使有新版本的IP地址,IPv4地址仍然是Internet用户使 用最广泛的地址。由32个二进制位组成,在日常生活中IPv4地址以点分十进制表示,但在程序它就是一 个网络字节序32位无符号整数。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jQqC9CiI-1666927252837)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028110020064.png)]

2、IPv4地址的格式

第一部分是网络位,表示IP地址所属的网段

第二部分是主机位,用来唯一标识本网段上的某台网络设备

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mb8NVbZ4-1666927252840)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028110045826.png)]

​ 主机位为全0,表示一个网段,不能分配给网络设备 ,主机位为全1,是广播地址的,由交换机或路由 器所拥有,除网络地址和广播地址以外的其他IP地址都可以作为网络设备的IP地址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hyKt0VY6-1666927252842)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028110100688.png)]

3、IPv4地址的分类

​ 官方制定的IP地址分配方案,早期设备性能不足,这种IP地址的分类方案可以提高设备转发效率。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kN20RBLV-1666927252844)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028110118631.png)]

​ **A类地址:**前8位为网络地址,后24位为主机地址,网络位第一位必须是0,因此该类IP地址中网络ID 的长度为8位,主机ID的长度为24位,该类IP地址范围为1.0.0.0~126.255.255.255,一般用于广域网。

​ **B类地址:**前16位为网络地址,后16位为主机地址。网络位的前2为必须是10,因为该类IP地址中网络 ID的长度为16位,主机ID的长度为16位,该类IP地址范围为128.0.0.0~191.255.255.255,一般用于城 域网。

​ **C类地址:**前24位为网络地址,后8位主机地址。网络位的前3位必须是110,因此该类IP地址中网络ID 的长度为24位,主机长度为8位。该类IP地址范围为192.0.0.0~223.255.255.255 ,一般用于局域网。

​ **D类地址:**该类IP地址的第一个字节以1110开始,它是一个专门保留的地址,并不指向特定的网络。 目前这类IP地址被用在组播中,其地址范围为224.0.0.0~239.255.255.255。

​ **E类地址:**该类IP地址以11110开始,为保留地址。其地址范围为240.0.0.0~255.255.255.254

4、特殊的IPv4地址

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JHJXIqc2-1666927252847)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028110223089.png)]

5、公网IPv4地址与私网IPv4地址

​ 公网指是互联网,公网地址就是能在互联网进行路由(被其它设备访问)的IPv4地址,私网地址不能 在公网进行路由的IPv4地址。

​ 现在,世界上所有终端系统和网络设备需要的IP地址总数已经超过了32位IPv4地址所能支持的最大地 址数4,294,967,296,为节省IPv4地址官方把IPv4中的部分IP地址保留用作私网地址,A、B、C类地址段 中都预留了特定范围的地址作为私网地址,为主机分配私网地址节省了公网地址,可以用来缓解IP地址 短缺的问题。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zmzF39Ga-1666927252848)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028110248292.png)]

​ 企业网络中普遍使用私网地址,不同企业网络中的私网地址可以重叠,默认情况下,网络中的主机无 法使用私网地址与公网通信,我们能够上网靠的是ISP组织分给我们的公网IP地址,但是这种IP地址一般 不是给个人的,一般都是给一个单位,一个区域的(共享宽带)。

​ 也就是说我们实际上能接触到的一般都是私网地址,即我们用ipconig命令查到的都是私有地址,也就 相当于局域网内的IP地址,当我们真正联网时,会先把数据发送到路由器,然后再由路由器进行处理实 现真正的联网操作,路由器的地址才是真正联网的IP地址,也就是公网IP,而我们在自己电脑上查到的 都是私网IP。

6、子网掩码

​ 与IPv4地址的格式相同,但不同的是它的网络位是全1,主机位是全0,主要用在私网中使用,IPv4地 址和子网掩码一起可以用来唯一的标识一个网段中的某台网络设备。

类别 子网掩码的二进制数据 子网掩码的十进制数据
A 11111111 00000000 00000000 00000000 255.0.0.0
B 11111111 11111111 00000000 00000000 255.255.0.0
C 11111111 11111111 11111111 00000000 255.255.255.0

​ 子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP 地址是否是本网段的,从而正确地进行路由。

​ 子网掩码&ip地址 = 网络地址,如果两人个ip地址的网络地址相同,那么说明它们在同一个子网内, 就可以直接通信而不需要路由器,反之如果如果两人个ip地址的网络地址不同,就需要使用到路由器跨 网络通信,不同子网中的IPv4地址可以相同。

​ 子网掩码是在IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,通过子网掩码将 A、B、C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的 局面。另一方面,在企业内网中为了更好地管理网络,网管人员也利用子网掩码的作用,人为地将一个 较大的企业内部网络划分为更多个小规模的子网,再利用三层交换机的路由功能实现子网互联,从而有 效解决了网络广播风暴和网络病毒等诸多网络管理方面的问题。

7、网关地址

​ 负责私网中出口的计算机,计算机会把要发送的数据优先发送网关地址,由它负责转发,一般由路 由器担任(路由器就是一台具有路由功能的计算机)。

8、IPv6地址

​ IPv4地址组合的数量是有限的,总体而言,可以算出40亿(256 4)个唯一地址。在IPv4地址才开始 时,这个数字似乎永远不会过期。但是,现在情况有所不同了。2011年,全球互联网编号分配机构 (IANA)分发了IPv4地址空间的最后一块。2015年,IANA正式宣布美国已用完IPv4地址。

​ 直到今天,IPv4地址仍然承载着最多(超过90%)的互联网流量。到目前为止,即使目前存在IPv4地 址耗尽的问题,也有一些方法可以继续使用IPv4地址。例如,当仅需要一个唯一的IP地址来代表一组设 备时,网络地址转换(NAT)是一种方法。除此之外,IP地址可以重复使用。

​ 当然,我们已经有了彻底耗尽的解决方案-IPv6地址,IPv6地址使用以冒号分隔的十六进制数字。它分为 八个16位块,构成一个128位地址方案。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AlPrMULp-1666927252849)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028110556993.png)]

​ 仔细观察,您会发现IPv6地址并不是一种全新的技术。它是Internet协议的最新版本,但它是在1998 年开发的,旨在替换IPv4地址。

9、IPv4与IPv6的区别

地址类型:

​ IPv4具有三种不同类型的地址:多播,广播和单播。IPv6还具有三种不同类型的地址:任意广播,单 播和多播。

数据包大小:

​ 对于IPv4,最小数据包大小为576字节。对于IPv6,最小数据包大小为1208字节。

header区域字段数:

​ IPv4具有12个标头字段,而IPv6支持8个标头字段。

可选字段:

​ IPv4具有可选字段,而IPv6没有。但是,IPv6具有扩展header,可以在将来扩展协议而不会影响主包 结构。

配置:

​ 在IPv4中,新装的系统必须配置好才能与其他系统通信。在IPv6中,配置是可选的,它允许根据所需 功能进行选择。

安全性:

​ 在IPv4中,安全性主要取决于网站和应用程序。它不是针对安全性而开发的IP协议。而IPv6集成了 Internet协议安全标准(IPSec)。IPv6的网络安全不像IPv4是可选项,IPv6里的网络安全项是强制性 的。

与移动设备的兼容性:

​ IPv4不适合移动网络,因为正如我们前面提到的,它使用点分十进制表示法,而IPv6使用冒号,是移 动设备的更好选择。

主要功能:

​ IPv6允许直接寻址,因为存在大量可能的地址。但是,IPv4已经广泛传播并得到许多设备的支持,这 使其更易于使用。

10、IPv4或IPv6使用哪个

​ 对于使用IPv6还是IPv4这个问题,没有标准答案。在考虑未来的网络体验时,IPv6地址就显得至关重 要。即使在我们已经没有网络地址的情况下仍然可以有其他办法使用IPv4地址,但是这些选项也可能会 轻微影响到网络速度或引起其他问题。不过,使用IPv6需要开发支持IPv6的新技术和产品。IPv6的速度 显然不比IPv4快,但是从IPv4完全更改为IPv6将为Internet提供更大的唯一IP池。那么为什么我们仍在使 用IPv4?

​ 问题就在于IPv4和IPv6无法相互通信。这就是为什么IPv6的集成和适配很复杂。大多数网站或应用程 序仅支持IPv4类型的IP地址。想象一下突然更改每个设备的IP地址。用户将无法访问大多数网站或应用 程序,而我们在互联网上将陷入一片混乱。从旧的IP类型转换为新的IP类型的过程应分步完成。例如, 这两个协议能够并行运行。此功能称为双重堆栈。它允许用户同时访问IPv4和IPv6内容。

三、TCP协议与UDP协议

1、TCP/IP、TCP、UDP是什么

TCP/IP协议是一个协议簇,里面包括很多协议的,UDP只是其中的一个, 之所以命名为TCP/IP协议, 因为TCP、IP协议是两个很重要的协议,就用他两命名了,而TCP和UDP是位于TCP/IP模型中传输层的两 个协议,他们代表着TCP/IP模型所具备的两种通信模式。

​ TCP (Transmission Control Protocol)传输控制协议,也叫数据流协议 。

​ UDP (User Datagram Protocol)用户数据报文协议,也叫报文协议。

2、TCP协议介绍

​ TCP是一种面向广域网的通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条安 全可靠的通信方式:

TCP的主要特点:

  • 基于流的方式

  • 面向连接;

  • 可靠通信方式;

  • 在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;

  • 通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

TCP的传输机制:

​ **数据分片:**在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组;

​ **到达确认:**接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认;

​ **超时重发:**发送方在发送分片时启动超时定时器,如果在定时器超时之后没有收到相应的确认,重发 分片;

​ **滑动窗口:**TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能 接纳的数据,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出;

​ **失序处理:**作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将 收到的数据以正确的顺序交给应用层;

​ **重复处理:**作为IP数据报来传输的TCP分片会发生重复,TCP的接收端必须丢弃重复的数据;

​ **数据校验:**TCP将保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过 程中的任何变化。如果收到分片的检验和有差错,TCP将丢弃这个分片,并不确认收到此报文段导致对 端超时并重发。

TCP的首部格式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-abzG1SDc-1666927252850)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028111019798.png)]

Source Port 是源端口,16位。
Destination Port是目的端口,16位。
Sequence Number是发送数据包中的第一个字节的序列号,32位。
Acknowledgment Number是确认序列号,32位。
Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4。
标志位: 6位
    URG表示Urgent Pointer字段有意义:
    ACK表示Acknowledgment Number字段有意义
    PSH表示Push功能,RST表示复位TCP连接
    SYN表示SYN报文(在建立TCP连接的时候使用)
    FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)
    Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。
Checksum是校验和,16位。
Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号
(Sequence Number字段的值)的偏移。

3、TCP的连接过程

​ TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对 方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

​ 建立一个连接需要三次握手,而终止一个连接要经过四次握手,这是由TCP的半关闭(half-close)造 成的。

TCP三次握手的过程:

  1. 客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。

  2. 服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。

  3. 客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

    三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-epZDA8Wf-1666927252854)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028111319328.png)]

TCP四次挥手的过程:

  1. 某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个 FIN分节,表示数据发送完毕。
  2. 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。 注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候 该应用进程接收的任何其他数据之后,因为,FIN的接收意味着接收端应用进程在相应连接上再无 额外数据可接收。
  3. 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发 送一个FIN。
  4. 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。 [3] 既然每个方向都需要一个FIN和一个ACK,因此通常需要4个分节,所以叫四次挥手。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RkLG78gw-1666927252855)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028111349447.png)]

注意:

  1. “通常”是指,某些情况下,步骤1的FIN随数据一起发送,另外,步骤2和步骤3发送的分节都出自执 行被动关闭那一端,有可能被合并成一个分节。
  2. 在步骤2与步骤3之间,从执行被动关闭一端到执行主动关闭一端流动数据是可能的,这称为“半关 闭”(half-close)。
  3. 当一个Unix进程无论自愿地(调用exit或从main函数返回)还是非自愿地(收到一个终止本进程的 信号)终止时,所有打开的描述符都被关闭,这也导致仍然打开的任何TCP连接上也发出一个 FIN。
  4. 无论是客户还是服务器,任何一端都可以执行主动关闭。通常情况是,客户执行主动关闭,但是某 些协议,例如,HTTP/1.0却由服务器执行主动关闭。

4、UDP协议介绍

​ 是一种支持无连接的传输协议,UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于 传输层,处于IP协议的上一层,与TCP互为补充,UDP为应用程序提供了一种无需建立连接就可以发送 封装的 IP 数据包的方法。

​ 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时 向多个客户机传输相同的消息(多对多通信)。

UDP的主要特点:

​ UDP它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做 什么特别的事情,而TCP协议几乎做了所有通信协议该做的事情。

​ UDP不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法 得知其是否安全完整到达的。

UDP的首部格式:

​ UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包而言UDP的额外开销很小。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RhGpP03N-1666927252857)(C:\Users\AllureLove1231\AppData\Roaming\Typora\typora-user-images\image-20221028111529733.png)]

Length:

​ 数据报的长度是指包括报头和数据部分在内的总字节数。因为报头的长度是固定的,所以该域主要被 用来计算可变长度的数据部分(又称为数据负载)。

​ 数据报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为 65535字节。不过,一些实际应用往往会限制数据报的大小,有时会降低到8192字节。

​ 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的 限制。

​ UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层,既不 拆分,也不合并,而是保留这些报文的边界,由应用程序需要选择合适的报文大小。

Checksum:

​ UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得 出,在传递到接收方之后,还需要再重新计算。

​ 如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验 计算值将不会相符,由此UDP协议可以检测是否出错。这与TCP协议是不同的,后者要求必须具有校验 值。

UDP的适用范围:

​ 它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成 ,也就是可靠性 由应用层负责,UDP协议适用运行在同一台设备上的多个应用程序进行通信,即使进行网络通信也只适 合于一次传输少量数据,使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP。

​ UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为UDP协议的控制选 项较少,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保 障可靠性的应用程序。

​ 多媒体数据流,不产生任何额外的数据,即使知道有破坏的包也不进行重发。当强调传输性能而不是 传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。在数据传输时间很短,以至于此前的连 接过程成为整个流量主体的情况下,UDP也是一个好的选择。

5、选择TCP还是UDP

TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。 虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为。

UDP TCP
是否连接 无连接 面向连接
是否可靠 不可靠传输,不使用流量控制和拥塞控制 可靠传输,使用流量控制和拥塞控制
连接对象个数 支持一对一,一对多,多对一和多对多交互通信 只能是一对一通信
传输方式 面向报文 面向字节流
首部开销 首部开销小,仅8字节 首部最小20字节,最大60字节
使用场景 是用于实时应用(IP电话,视频会议,直播等) 适用于要求可靠传输的应用

接 | 面向连接 |
| 是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
| 连接对象个数 | 支持一对一,一对多,多对一和多对多交互通信 | 只能是一对一通信 |
| 传输方式 | 面向报文 | 面向字节流 |
| 首部开销 | 首部开销小,仅8字节 | 首部最小20字节,最大60字节 |
| 使用场景 | 是用于实时应用(IP电话,视频会议,直播等) | 适用于要求可靠传输的应用 |

猜你喜欢

转载自blog.csdn.net/m0_62480610/article/details/127568256