11 UDP:用户数据报协议

来源:互联网 发布:pose studio mac版 编辑:程序博客网 时间:2024/06/05 17:53

1、概述

面向无连接的用户数据报协议,在传输数据前不需要先建立连接;目地主机的运输层收到UDP报文后,不需要给出任何确认

特点:
相比TCP速度稍快些
简单的请求/应答应用程序可以使用UDP
对于海量数据传输不应该使用UDP
广播和多播应用必须使用UDP

2、格式

这里写图片描述

端口号表示发送进程和接收进程
UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为8字节
UDP检验和覆盖UDP首部和UDP数据,UDP的检验和是可选的

3、伪首部

伪首部(pseudo header),通常有TCP伪首部和UDP伪首部。在UDP/TCP伪首部中,包含32位源IP地址,32位目的IP地址,8位填充0,8位协议,16位TCP/UDP长度。通过伪首部的校验,UDP可以确定该数据报是不是发给本机的,通过首部协议字段,UDP可以确认有没有误传。

这里写图片描述

伪首部并非TCP&UDP数据报中实际的有效成分。伪首部是一个虚拟的数据结构,其中的信息是从数据报所在IP分组头的分组头中提取的,既不向下传送也不向上递交,而仅仅是为计算校验和。
当接收端校验检验和不正确时,会丢弃udp数据报

4、IP分片

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

传输过程中,即使只丢失一片数据也要重传整个数据报。因为IP层本身没有超时重传的机制,起始端系统也无法知道数据报是如何被分片的

5、广播 多播

广播和多播仅应用于UDP。

5.1 广播

5.1.1 受限的广播
受限的广播地址是 255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。
在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。

5.1.2 指向网络的广播
指向网络的广播地址是主机号为全1的地址。 A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。
一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。

5.1.3 指向子网的广播
指向子网的广播地址为主机号为全 1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。
例如,如果路由器收到发往 128.1.2.255的数据报,当 B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。

5.1.4 指向所有子网的广播
指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。

5.2 多播

IP多播提供两类服务:
1) 向多个目的地址传送数据。
2) 客户对服务器的请求。

1)局部链接多播地址范围在 224.0.0.0~224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;
2)预留多播地址为 224.0.1.0~238.255.255.255,可用于全球范围(如Internet)或网络协议;
3)管理权限多播地址为 239.0.0.0~239.255.255.255,可供组织内部使用,类似于私有 IP 地址,不能用于 Internet,可限制多播范围。

具体:
http://blog.csdn.net/tennysonsky/article/details/44493407

原创粉丝点击