计算机网络-IP协议


IP报文

MTU :

通信术语 最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。

网络名称
MTU 值
Internet IPv4 path MTU
At least 68 max of 64 KiB
Internet IPv6 path MTU
At least 1280, max of 64 KiB, but up to 4 GiB with optional jumbogram
Ethernet v2
1500
Ethernet with LLCand SNAP
1492
Ethernet jumbo frames
1501 – 9216 or more
PPPoE v2
1492
DS-Lite over PPPoE
1452
PPPoE jumbo frames
1493 – 9190 or more
IEEE 802.11 Wi-Fi (WLAN)
2304
Token Ring (802.5)
4464
FDDI
4352

数据分片

其中数据A、B属于数据分片,原始数据被拆分成两个正交子集分布在两个节点上。而数据集C属于数据冗余,同一份完整的数据在两个节点都有存储。当然,在实际的分布式系统中,数据分片和数据冗余一般都是共存的。

互联网协议允许IP分片,这样的话,当数据包比链路最大传输单元大时,就可以被分解为很多的足够小片段,以便能够在其上进行传输

ip包头 头部大小:

4bit + 4bit + 8bit + 16bit +16bit + 3bit + 13bit + 8bit +8bit + 16bit + 32bit(S IP) + 32bit(D IP)

= 160bit = 20byte

IP数据报

参数
翻译
注释
其他备注
VER
版本
区分不同ip版本  例如ipv4 ipv6

HLEN
头部长度
长度为不确定值,所以需要标识头部长度 用4bit表示,范围5-15  (20-40byte)

Service Type
协议类型 TOS
用来指定特殊的报文处理方式
附表给予参数
Toal Lenght
总长度
整个ip分组的长度 取值 0-65535byte  链路只允许1500byte,需要MTU 分片

Identification
标识符
通常与标记字段和分片偏移字段一起用于IP报文的分片。
当原始报文大小超过该MTU 就会对原始数据进行分片。每个分派你报文不超过MTU 。这个字段的作用将在同一原始文件被分片的报文打赏相同的标记
Flags
标记
见下章节 3BIT (空 D M )

Fragmentation offset
分片偏移
标识某个分片在分组中的位置
以太网最大的帧长为1518, IP报文1500byte + 帧头18byte = 1518byte
Time to live
生存时间TTL
跳数的大小,即数据包可以跳多少次
TTL并不是一个真正时间值,因经过设备的时间不可能一致。一般的:
linux为 TTL=255,win98为TTL=128,win7为TTL=64
Protocol
协议
标识出传输层的地址或协议号
一般视作网络层,因为都需要用IP报头封装。所以1 代表交给ICMP,6代表交给TCP
Header checksum
校验ip报头差错
两种模式:1. 16bits  差错检测  2. 无序重复校验数据部分
计算方法:

首先把检验和字段置为0。然后,对首部中每个16 bit(切割成多个16bit组)进行二进制反码求和(整个首部看成是由一串16 bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样对首部中每个16 bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。 报头:1011011101111011 = 16bit 反码:0100100010000100 求和:1111111111111111 
source ip address

源IP地址


Destination ip address
目的IP地址


Option
可选字段
用于控制、转发要求、测试等
可选字段 0-40 byte,不是ip分组的必须部分,但其处理是ip软件的必须部分

附表:

附:常见协议类型以及协议号对应表

协议号
协议类型
1
ICMP
2
IGMP
4
IP
6
TCP
8
EGP
17
UDP
41
IPV6

服务类包TOS

PPP包对应优先权:

权越大 优先级越高

序列
协议优先级
翻译
000
routine
普通
001
priority
优先
010
immediate
立即
011
flash

100
flash override

101
cri/tic/ecp

110
internetwok control
网间控制
111
network control
网络控制

DTR 表对应关系

序列
翻译
注释
D
时延
0:普通        1:尽量
T
吞吐量
0:普通        1:尽量
R
可靠性
0:普通        1:尽量
M
传输成本
0:普通        1:尽量

目前在Internet中使用的TCP/IP协议大多数情况下网络并未对TOS进行处理,但在实际编程时,有专门的函数来设置该字段的各域。一些重要的网际应用协议中都设置了建议使用的TOS值:

FLAGS 位标记

标识
翻译
注释
R

未被使用
DF
不要分片 
当DF 为1时,路由器不能对数据包进行分片
MF
多分片
路由器分片时,最后一个分片的MF 位为0,其他所有分片的MF 设为1.这样接收者就能知道是否接受完

目标端主机重组数据报的原理是

(1)—根据“标识”字段可以确定收到的分片属于原来哪个IP数据报;

(2)—根据“标志”字段的“片未完MF”子字段可以确定分片是不是最后一个分片;

(3)—根据“偏移量”字段可以确定分片在原数据报中的位置。

偏移量计算

片偏移就是某片在原分组的相对位置,以8个字节为偏移单位。这就是说,每个分片的长度一定是8字节(64位)的整数倍

⚠:每次传输最大只能传1400字节,缺省情况下按最大传输量传输

根据图所示本数据包分片3次。数据包总长度为1500B 600B+600B+300B = 1500B

第一次分片 时片移量为0

第二次为600/8 = 75

第三次为 (600+600) / 8 = 150

IP信息包的传送方式

根据目的地址的不同,区分为3种传送方式:单点传送、广播传送以及多点传送

单点传送

  • 单点传送是一对一的传递模式。
  • 源端所发出的IP信息包,其IP报头中的目的地址代表单一目的设备,因此只有该目的设备能收到此IP信息包。
  • 在互联网上传送的信息包,绝大多数都是单点传送的IP信息包。

广播传送

  • 广播传送是一对多的传递方式
  • 源设备所发出的IP信息包,其IP报头中的目的地址代表某一网络,而非单一设备,因此该网络内的所有设备都能收到、并处理此类IP广播信息包。
  • 容易发生广播风暴

多点传送

  • 假设我们现在必须传送一份数据给网络上10部指定的设备。
  • 如果使用单点传送的方式,必须重复执行10次传送的操作才能达成目的,不仅没有效率,且浪费网络带宽。
  • 如果使用广播传送的方式,则指定网络中的所有(例如20部)计算机都会收到、且必须处理这些广播传送信息包,
  • 换言之,将影响到其他不相干的计算机。

文章作者: Hui3c
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-ND 4.0 许可协议。转载请注明来源 Hui3c !
  目录