首页 > 其他 > 详细

运输层2——用户数据报协议UDP

时间:2019-07-23 17:13:17      阅读:67      评论:0      收藏:0      [点我收藏+]

写在前面:本文章是针对《计算机网络第七版》的学习笔记

运输层1——运输层协议概述

运输层2——用户数据报协议UDP

运输层3——传输控制协议TCP概述

运输层4——TCP可靠运输的工作原理

运输层5——TCP报文段的首部格式

运输层6——TCP可靠传输的实现

运输层7——TCP的流量控制和拥塞控制

运输层8——TCP运输连接管理

1. UDP概述

用户数据报协议只在IP数据报服务之上增加了很少一点的功能:复用,分用以及差错检测的功能。UDP的主要特点:

  • UDP是无连接的:即发送数据前不需要建立连接,减少了开销和发送数据的时延。

  • UDP使用尽最大努力交付:不保证可靠,因此主机无需维持复杂的连接状态。

  • UDP是面向报文的:发送方的UDP对应用程序交下来的报文添加首部后直接交付给IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。

  • UDP没有拥塞控制:因此网络出现拥塞不会影响主机的发送速率,也就是允许丢失数据,但要保证时延。

  • UDP支持一对一,一对多,多对一,多对多的通信。

  • UDP首部开销小:只有8个字节。

2. UDP首部格式

UDP用户数据报分为 = 首部字段 (8个字节,4个字段,每个字段2个字节)+ 数字字段。

首部字段:

  • 源端口: 源端口号。在需要对方回信的时候选用,不需要填0。

  • 目的端口: 目的端口号。必填。

  • 长度: UDP用户数据报的长度。最小为8。

  • 检验和:检测UDP用户数据报传输过程中是否有错。有错就丢弃。

技术分享图片

3. UDP首部检验和计算方法

在计算检验和时,需要在用户数据报之前加12字节的伪首部。

所谓伪首部,是指他并不是UDP用户数据报的真正首部,只是在计算检验和的时候,临时加上的,检验和就是按照这个临时的用户数据报计算的。既不下传也不向上提交。伪首部的格式如上图。

UDP计算检验和与IP数据报类似,只是UDP的首部校验和把首部和数据一起都检验了。步骤如下:

  1. 在发送方,首先先把全零放到检验和字段;

  2. 再把伪首部和UDP用户数据报看成是由许多16位的字串连接起来的;

  3. 然后按二进制反码计算出这些16位字的和,并将此和的反码写入检验和字段后,就发送这样的用户数据报。

  4. 在接收方,把收到的UDP用户数据报连同伪首部(以及可能的填充全零字节)一起,按二进制反码求这些16位字的和。

  5. 若无差错时其结果应全为1;否则就是有差错出现,可以选择丢失,可以上传(但是要附上错误信息)。

技术分享图片

运输层2——用户数据报协议UDP

原文:https://www.cnblogs.com/anzhengyu/p/11232699.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!