Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

用户数据报协议 UDP #60

Closed
PolluxLee opened this issue Jun 20, 2018 · 0 comments
Closed

用户数据报协议 UDP #60

PolluxLee opened this issue Jun 20, 2018 · 0 comments
Labels

Comments

@PolluxLee
Copy link
Owner

UDP

  • UDP 是 无连接的,即,发送数据之前不需要建立连接(和释放连接),因此减少了开销和发送数据之前的时延
  • UDP 使用 尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表
  • UDP 是 面向报文 的。UDP 对应用层交下来的报文,既不合并,也不拆分,而是 保留这些报文的边界。所以应用层要选取合适大小的报文,不然会降低 IP 层的效率。
  • UDP 没有拥塞控制,网络出现的拥塞不会使源主机的发送速率降低。实时应用(IP 电话,视频会议),要求源主机以恒定的速率发送数据,并且允许在网路发生拥塞时丢失一些数据,但却不允许数据有太大时延。
  • UDP 支持一对一、一对多、多对一和多对多的交互通信
  • UDP 的 首部开销小

UDP 首部格式

UDP 首部字段有 8 个字节,四个字段,每个字段两个字节

源端口 源端口号,需要对方回信时选用
目的端口 目的端口号,在终点交付时必须使用
长度 UDP 的长度,最小值是 8 (仅有首部)
检验和 检测 UDP 用户数据报在传输中是否有错,有错就丢弃

当运输层收到 IP 层上交的 UDP 数据报,根据首部的目的端口进行分用,上交到最后的终点,应用进程

伪首部

在计算检验和的时候,临时添加在 UDP 用户数据报前面,得到一个临时 UDP 数据报,检验和就是按照这个临时的 UDP 用户数据报来计算的

伪首部不向下传送,也不向上递交,而仅仅是为了计算检验和

和计算 IP 数据报首部检验和类似,不过
IP 数据报的检验和,只检验 IP 数据报的首部,但 UDP 的检验和是把首部和数据部分一起都检验

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant