2.2.3、UDP用户数据报协议
UDP是一种面向无连接的传输层协议,不具有可靠性的数据报协议。UDP基本就是TCP协议的简化版,与TCP相比占用空间不大,占用的网络资源更少。相比TCP,不对数据段进行排序,不等待确认应答,也不检查数据段,所以称为不可靠协议。在传输数据前也不建立虚电路与接收方联系,这个特点也被称为无连接协议。
前面对TCP可靠性的几个特点作了说明,传输数据时实施的顺序控制和重发控制、流量控制、拥塞控制功能。这些UDP都没有,UDP不保证可靠交付,尽最大努力交付,没有确认应答,容忍丢失部分数据。UDP 支持一对一、一对多、多对一和多对多的交互通信。
UDP的应用场景,对于实时性要求比较高,常用的软件聊天软件,网络游戏、视频播放,IP电话、视频会议、直播等,可以容忍一定的丢包率,在即时性要求很高的应用里如果使用TCP协议,每个数据段等待数据的确认应答,再传输,会造成画面或声音的卡顿,娱乐性的实用性体验很差。使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP。
UDP报文格式: 源端口和目的端口 UDP源端口(Source Port):16位2字节,标识客户主机正在运行的应用程序。 UDP目的端口(Destination Port):16位2字节,连接的目标主机的应用程序。
长度:UDP报头和UDP数据的总长度。
校验和:UDP报头和UDP数据的校验和,检测UDP数据报在传输中是否有错,有错则丢弃。
UDP抓包图: 现在新的一种UDP-Lite,在原有的UDP机能上进行了扩展,在UDP通信中如果校验和出现错误,所收到的包将被全部丢弃,UDP-Lite在计算校验和 的范围可以由应用自行决定,有了这样的机制,就可以只针对不允许发生错误的部分进行校验和的检查。对于其它部分,就是发生了错误,也会忽略 不计。这个包也不会被丢弃,而是直接传给应用层处理。
2.3、网络层
网络层也称为因特网层,功能是寻址和路由选择,包含了IPv4、IPv6、ICMP、ARP、RIP、OSPF、BGP等协议。与OSI 参考模型中的第3层相似。
寻址是通过IP因特网协议实现。路由选择就是通过IP协议查看每个分组的IP地址,使用路由表选择最佳路径将分组数据发往目的地,RIP、OSPF、BGP等属于路由选择协议。
2.3.1、IP因特网协议
IP(Internet Protocol,因特网协议),地址信息叫做IP地址,是分配给IP网络中每台机器的数字标识符,它指出了设备在网络中的具体位置。IP地址是软件地址(逻辑地址),而不是硬件地址。
在因特网中给每台电脑设备和其它设备都配置一个唯一的地址,才能正常通信,使数据能正常的转发。在 TCP/IP 通信中使用 IP 地址识别主机和路由器。在网络接口层交换机不需要 IP 地址。
IP属于无连接型传输,在数据包发送之前,不需要建立与对端目标地址的连接。TCP的面向连接是先与目标端口建立连接,得到确认应答才开始传输数据包。
IP接收来自传输层的数据段,作为数据部分,并封装 IP 头部信息。目的 IP 地址和源 IP 地址,以及上层协议类型信息等头部信息。根据需要将其划分成数据报(分组)。
数据报分组是指两个过程,分片和重组。即发送端主机进行分片,接收端主机进行重组。早期是由路由器进行分片,随着互联网的发展,网络数据传输不断加快,路由器已不能适应。现在分片工作由主机完成。是否分片是根据最大传输单元(MTU)来决定,每个不同类型的数据链路,最大传输单元(MTU)不同,以太网默认是MTU是1500字节。
链路类型 | MTU | 总长度 |
---|
IPv4最大MTU | 65535 | - | IPv4最小MTU | 68 | - | IPv6最小MTU | 1280 | - | 以太网 | 1500 | 1518 | PPP | 1500 | - | IEEE802.3 Ethernet | 1500 | 1518 | PPPoE | 1492 | - |
IPv4报文 版本:IP版本号。4为IPv4。
首部长度:由4比特构成,报头的长度,单位为4字节32比特。对于没有可选项的IP包,首部长度则设置为“5”,IP首部长度为5*4=20字节(Byte)。
优先级和服务类型:分为 DSCP段和ECN段,DSCP段由运营管理者制定,分为8种类型的质量控级别。ECN段是第6位简称为ECT,第七位简称为CE,1表示是出现拥堵就将CE位设置为1。
总长度:IP首部与数据部分合起来的总长度。字段长16比特,IPv4包的最大长度为216=65535比特。
标识:16比特,用于分片重组。同一个分片的标识值相同,不同的分片标识值不相同。一般来说,同一分片的IP包,它值是逐渐递增。如果ID相同, 里面的目标地址、源地址或协议不同,那被视为是不同的分片。
标志:3比特,表示数据包分片的信息。
二进制 | 含义 |
---|
010 | 不能分片 | 001 | 还有分片 | 000 | 最后一个分片的包 |
分片偏移:13比特,用来标识被分片的每一个分段相对于原始数据的位置。第一个分片对应的值为0。片偏移以 8 个字节为偏移单位。
生存时间TTL:8比特,指可以中转多少个路由器,每经过一个路由器,TTL值减少1,当为0时,路由器将该数据报丢弃。在路由协议中很重要的概念。
协议:8比特,IP报文携带的数据使用的是那种协议。 常使用的协议
协议编号 | 简称 |
---|
1 | ICMP | 2 | IGMP | 4 | IP | 8 | EGP | 17 | UDP | 41 | IPv6 | 43 | IPv6-Route | 44 | IPv6-Frag | 58 | IPv6-ICMP | 88 | EIGRP | 89 | OSPFIGP | 97 | EETHERIP | 103 | PIM | 112 | VRRP | 124 | ISIS over IPv4 | 137 | MPLS-in-IP |
首部校验和:计算IP头部的校验和,检查IP报头的完整性。
源IP地址:发送端的IP地址信息。
目的IP地址:接收端的IP地址信息。
可选项:长度可变,通常只在进行实验或诊断时使用。该字段包含几点信息:安全级别、路径记录、源路径、时间戳。
填充:在有可选项的情况下,IP报头长度可能不是32比特的整数倍。通过向该字段填充0,调整为32比特的整数倍。
数据:传输层的数据包。
抓包图
|