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

传输层的两个主要协议:

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

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

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

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

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

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


UDP的特点:

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

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

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

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

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

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


UDP的报文格式如下所示:


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端点不可达报文。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值