tcp/ip协议学习笔记(7)UDP用户数据报协议

本文介绍了UDP(用户数据报协议)的特点,包括其不可靠性、易分片的特性,以及UDP报文的封装格式。同时,讨论了IP分片的过程,并探讨了UDP数据报的最大长度。此外,还提到了UDP服务器的设计与实现的简单示例。
摘要由CSDN通过智能技术生成

为了更好的分享体验,博客搬迁至极客驿站 ,欢迎查阅

   

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

1、UDP报文封装

UDP首部报文格式如下

 0          7 8       15 16       23 24       31  
 +—---—----+----------+-----------+----------+ ——
 |     Source Port      |   Destination Port   |  ↑
 +-----------+----------+-----------+----------+ 8byte
 |     Length           |   Checksum           |  ↓
 +-----------+----------+-----------+----------+ ——
 |          data octets ...                    |
 +---------------------------------------------+               
         User Datagram Header Format

端口号表示发送进程和接收进程,UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为8字节(发送一份0字节的UDP数据报是OK的)。这个UDP长度是有冗余的。IP数据报长度指的是数据报全长,因此UDP数据报长度是全长减去IP首部的长度。

特点:不可靠、易分片

UDP不提供可靠性:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。

分片:应用程序必须关心IP数据报的长度。如果它超过网络的MTU,那么就要对IP数据报进行分片。如果需要,源端到目的端之间的每个网络都要进行分片,并不只是发送端主机连接第一个网络才这样做。

2、IP分片

物理网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其MTU。IP把MTU与数据报长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。把一份IP数据报分片以后,只有到达目的地才进行重新组装。

IP首部中部分字段用于报文分片组装,具体参见tcp/ip协议学习笔记(3)Internet Protocol(IP)

对于发送端发送的每份IP数据报来说,其标识字段都包含一个唯一值。该值在数据报分片时被复制到每个片中。标志字段用其中一个比特来表示“更

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值