UDP协议

第十一章UDP协议

1.UDP是一个简单的面向数据报的运输层协议。

IP数据报的格式如下:

UDP协议_第1张图片
[注意]UDP数据报封装成IP数据报后,那么应用程序需要关注IP数据报的长度,如果超过网络的MTU,则需要对IP数据报进行分片。

2.UDP首部

UDP首部的格式:

UDP协议_第2张图片
[注意]UDP长度字段是指UDP首部和UDP数据。

3.UDP校验和

格式如下:

UDP协议_第3张图片
[注意]UDP校验和是端到端的校验和。由发送端计算然后接收端验证。这个校验和是可选的,如果关闭端到端的校验和功能,那将导致差错在UDP数据报中检验不出来。

4.IP分片

 1.分片可以在发送的远端进行,也可以在中间的路由器进行。重装则是在目的端的IP层进行。
 2.UDP丢失一片数据也要重传整个数据报,因为UDP没有超时和重传机制。
 一个分片的图例(源自课本):

UDP协议_第4张图片

5.ICMP不可达差错

发生的情况:当路由器接收到一份需要分片的数据,但是IP首部被设置了不分片(DF)的标识比特。如果某个程序需要判断到目的端口的路途的最小MTU,那么可以利用ICMP不可达差错报文,这个称为路径MTU发现机制。
[Tips]可以使用traceroute确定路径的MTU。

6.ICMP源站抑制差错

发生的情况:当一个系统(路由器或者主机)出现接收数据报的速度比其处理的速度快时,可能产生这个差错。

7.UDP数据报解读

来自客户的UDP数据报, 其IP首部包含源和目的IP地址,UDP首部包含源和目的端口。因此,当一个应用程序接收到UDP数据报,操作系统会告诉它是来自哪里的,即源IP地址和源端口。
[注意]UDP输出队列是FIFO(先进先出,类似数据结构的队列),而ARP是LIFO(后进先出,类似数据结构的栈)。
第十一章的UDP学习到此。水平有限,如果有错漏,请指正。

你可能感兴趣的:(网络)