《计算机网络——自顶向下方法》运输层——无连接运输:UDP

无连接运输:UDP

运输层最低限度必须提供一种复用、分解服务,以便在网络层与正确的应用及进程之间传递数据。UDP就是只做了运输层协议能够做的最少工作。除了复用/分解功能及少量的差错检测之外,它几乎没有对IP增加别的东西。在使用UDP时,发送方和接收方的运输层实体之间没有握手,正因为如此,UDP被称为是无连接的
既然TCP提供了可靠的数据传输服务,而UDP不能提供,那么TCP是否总是首选?答案是否定的,因为许多应用程序更适合用UDP,原因主要有以下几点:

  • 关于合适、发送什么数据的应用层控制更为精细
  • 无需连接建立 ,UDP不会引起建立连接的时延;
  • 无连接状态 ,TCP需要在端系统中维护连接状态,此连接状态包括接收和发送缓存,拥塞控制参数以及序号与确定号参数。要实现TCP可靠数据传输与拥塞控制这些状态信息是必要的。另一方面,UDP不需要维护这些状态信息,也不跟踪这些参数,因此,某些撞门用于某种特定应用的服务器当应用程序运行在UDP而不是在TCP上时,一般都能支持更多的活跃用户。
  • 分组首部开销小, 每个TCP报文段都有20字节的首部开销,而UDP仅有8字节的开销。
    需要提出的是:使用UDP的应用时可以实现可靠数据传输的,这可以通过在应用程序自身中建立可靠机制来完成。

UDP报文段结构

UDP报文段结构如下图所示。应用层数据占用UDP报文段的数据字段。UDP的首部只有4个字段,每个字段有两个字节组成。通过端口号可以使目的主机将应用数据交给运行在目的端系统中的相应进程。长度字段指示了在UDP报文段中的字节数(首部加数据)。因为数据字段的长度在一个UDP段中不用一在另一个段中,故需要一个明确的长度。接收方使用检验和来检查该报文段中是否出现了差错。实际上计算检验和时,除了UDP报文段以外还包括了IP首部的一些字段。

UDP检验和

UDP检验和提供了差错检测功能。检验和用于确定当UDP报文段从源到达目的地移动时,其中的比特是否发生了改变。
发送方的UDP报文段中的所有16比特的字的和进行反码运算,求和遇到溢出时都被回卷(将异常位加到最低位)。得到的结果放在UDP报文段中的检验和字段。
举例来说我们有下满3个16比特的字:
0110011001100000 0101010101010101 1000111100001100 \begin{aligned} &0110011001100000\\ &0101010101010101\\ &1000111100001100 \end{aligned} 011001100110000001010101010101011000111100001100
这些16比特的字的前两个之和是:
0110011001100000 0101010101010101 1011101110110101 \begin{aligned} &0110011001100000\\ &\frac{0101010101010101}{1011101110110101} \end{aligned} 011001100110000010111011101101010101010101010101
再将上面的和与第三个字相加是:
1011101110110101 1000111100001100 0100101011000010 \begin{aligned} &1011101110110101\\ &\frac{1000111100001100}{0100101011000010} \end{aligned} 101110111011010101001010110000101000111100001100
※ 最后一次加法有溢出它要被回卷。
因此将该和 0100101011000010 0100101011000010 0100101011000010求反码的结果是: 1011010100111101 1011010100111101 1011010100111101,这变为了检验和。
在接收方,全部的4个比特字(包括检验和)加在一起。如果该分组中没有引入差错,则显然在接收方处该和将是 1111111111111111 1111111111111111 1111111111111111.如果这些比特之一是0,那么我们就知道分组中已经出现了差错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值