计算机网络学习--用户数据报协议UDP(9)

Love The Way You Lie 2022-10-02 05:48 245阅读 0赞

传输层的两个主要协议:

(1) TCP:transmission control protocol,传输控制协议

(2) UDP:user datagram protocol,用户数据报协议

传输层实现的是主机内进程之间的通信,通信时传递的数据单位叫做协议数据单元。TCP传输时称为TCP报文,UDP协议传输时称为UDP用户数据报。

UDP:无连接的传输层协议,不提供流量控制功能。

TCP:面向连接的传输层协议,提供流量控制和差错检测功能。

下面列举一些应用层协议及其所使用的传输层协议:

Center

UDP的特点:

(1) 无连接的。发送数据不需要建立连接,减小了开销和时延。

(2) 使用最大努力交付,不保证可靠交付。

(3) 面向报文的。UDP对应用层交给的报文,既不合并也不拆分,而是直接将报文作为UDP用户数据报的数据部分,并且在数据部分前面加上UDP首部。如果UDP用户数据报过大,则会在IP层进行拆分。

(4) UDP没有拥塞控制和流量控制。网络的阻塞不会使得源主机的发送速率降低。

(5) 首部开销很小,只有8个字节,不像TCP首部至少有20个字节。

(6) 支持一对一,一对多,多对一,多对多的交互通信。

UDP的报文格式如下所示:

Center 1

UDP的首部由8个字节组成,分为4个字段,每个字段占2个字节,具体如下:

(1) 源端口号。在需要对方回送信息时用,否则可以用全0填充。

(2) 目的端口号。

(3) 长度。UDP用户数据报的总长度,包括首部和数据部分。最小值为8(仅包含首部)。

(4) 检验和。检测用户数据报在传输时是否有错。有错则丢弃。

在上图中可以看出,在UDP首部的前面还要加上一个伪首部,伪首部由12个字节组成。伪首部即不向下传送,也不向上提交,只是在计算校验和时才会用到。

UDP计算校验和和计算IP数据报首部校验和的方法类似,不同的是,IP数据报的校验只针对首部,而UDP数据报的校验还包括数据部分。校验的方法很简单,那就是将伪首部和整个UDP用户数据报看成整体,首先将校验和的字段填0,以16位为单位(如果长度不是16位的整数倍,则补0)进行二进制相加,并将相加和的反码填入到校验和的字段。在目的主机的传输层收到这个UDP数据报后,采用同样的方式进行相加,如果所加的和的反码为0,则表示没有差错,否则表示出错,这个数据报将会丢弃。

目的主机在传输层收到UDP用户数据报,会根据目的端口号,将UDP数据报的数据部分通过分用提交给相应端口的应用进程。如果这个端口号不正确,则会向源主机发送一个ICMP端点不可达报文。

发表评论

表情:
评论列表 (有 0 条评论,245人围观)

还没有评论,来说两句吧...

相关阅读

    相关 UDP用户数协议

    UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流字符的协议不同,如TCP,应用程序产生的全体数