2.5 IP v4

2.5 IPv4

——————————————————————————————————————————————

1Word=4Octet=32Byte=32Bit,1Octet代表8字节(二进制),Word代表多比特的组合,Flag表示1个字节的控制函数,Flag为1是代表被设置,Flag为0时代表是没有用到的干净的clear,这些在IPv4中使用,但也用于IPv6、TCP和UDP以及其他IETF协议。


IPv4包被称为数据报,数据报定义如下,在RFC 1594中,它被定义为一个独立的独立数据实体,它承载足够的信息,而不依赖任何其他较早发送的数据包进行路由,这就是是一个独立的单元,它具有所有的控制特性和功能,并且它可以独立地路由,它们被成功地路由或不成功不是依赖于先前的包。换句话说每个IPv4数据包都可以是个火车头。


IP包被设计成有IPv4包和IPv6包,这是IP v4包的结构:首先它分为有一个报头和一个有效负载,有效载荷部分将包括TCP/UDP报头以及数据部分该数据部分是有效载荷段部分

IPv4的基本功能是互联网络和路由,IPv4分组报头包(IPv4 packet header)含将IPv4包传递到其目的地所需的所有功能,这就是为什么它被称为数据报的原因。


——————————————————————————————————————————————

看下图,一共分为14部分一共占有20octets:


1.版本(version)(IP v 4中有4字节/IP v 6中有6字节)

不同的IP包的版本通过version被用来分辨。


2.因特网报头长度(IHL)(4 bits)

顾名思义,这是一个用Word表示的IP v4 header长度,IHL最小值为5,所以说最小长度是5Words,即20Octets。


3.区分服务字段(DS) 和 显示拥塞通知(ECN) (Lds=6bits,Lecn=2bits)

(1)DS区分服务优先级分配,6字节。

(2)ECN这些用于网络拥塞的显式信令,以减缓在网络中检测到的延迟或拥塞时正在传输的分组的速度。


4.总长度(Total Length)(16bits)

总长度以八位字节为单位的IP数据包的总长度,也就是2的16次方个Octets也就是2的19次方bits的空间,当然,这些空间不会全部用到,because IPv4 packet size is limited by the layer 2 frame size,就是第二层的帧。


这里插一个notion,那就是

4.5.MTU

它是一个IP分组的最大大小,可以在介质上无碎片地传输,即不用分组

比如:

(1)当你使用以太网的时候,基于IEEE 802.3标准,MTU的大小是1500个八位字节,如下图,出来MAC目的地MAC源,802.1Qtag,以及长度,中间一大块有效载荷段(payload)有46到1500Octets的长度,


(2)在遵循IEEE 802.11无线局域网、无线LAN标准的Wi-Fi的情况下,您可以看到2304个八位字节的最大大小MSDU(MAC服务数据单元)MTU和MPDU(即包含了MAC协议数据单元,这将包括帧控制、持续时间ID、地址、FCS,MSDU),在IP v4和IP v6里头MSDU都是2304Octets,


5.标识(Identification)(16bits)

这是唯一鉴别IPv4包的方法,它与源地址,目的地址,和协议领域一起使用下面会说到。


6.标志和片偏移(Flags and Fragment Offset)(Lfl=3bits LFr=13bits)

这个是非常有用的一个功能那就是分组碎片化,即当一个数据包太大不能通过网络的时候需要把它大卸八块才能传输。

1.先来看看这个Flag,其中只有两个字节有被用到

(1.1)0号字节是预留的,设置成0。

(1.2)1号字节是DF表示不用碎片化,1号字节为1时表示真即不用碎片化,为0就是假表示可能要碎片化,当Bit1为1时就跳过了,为0时开始检查Bit2。

(1.3)2号字节是MF表示要去碎片化,2号字节为1时表示碎片化就这样不断循环下去,0时表示这是最后一个碎片了。


2.片段偏移(Fragment Offset)(13 bits)

这表明原始数据报中的这个片段属于哪里,而除了最后一个片段以外的片段必须包含一个数据字段,这是长度为64字节的单位.通俗来说拿2.1~2.4中的书集做例子这就是箱子编号。


7.生存时间(TTL)(8 bits)

它指定数据包允许在Internet中保留的秒的时间长度。IP分组通过的每一个路由器都应该至少减少一个TTL。TTL与该项中的跳数相似,如果TTL字段在到达目的地之前变为零,则该分组将被丢弃,这个在level.1有提到,可以参考level.1的Week 5(part 2)


8.协议(Protocol)(8 bits)

这句话很重要中文翻译不来:This identifies the type of the next header in the packet directly following the IPv4 header.然后这个协议(IP v4型)将会一直指示下去,第三层...第四层...还有最后的载荷段层(下图)。


这是protocol代号,每个号码对应一个协议,其中就有最流行的TCP/UDP,也可以看到ICMP,它是Internet控制消息协议,还有OSPF,用来执行路由路径的建立。


9.报头校验(Header Checksum)(16bits)

报头校验和包括错误检测码,使得IPv4分组报头受到保护,但它不保护IP分组的有效载荷部分,包中的领域确实发生了变化,当它们改变时,重新计算报头校验和每经过一个路由器的时候都需要检查错误,因为这里面的一些领域在路由的过程中会发生变化就比如TTL领域和Flag领域等等。


10.地址(address)(32 bits)

地址分为五ABCDE类而CIDR,这是无类别的域间路由表示法现在使用得更为流行

(1)这是一种有效地分配IP地址和启用IP路由的方法,1993由IETF提出,取代了分类IP地址,因为ABCDE类的子网太大了使得IP的使用效率不高,A lot of IP addresses had unused, reserved, wasted IP addresses,CIDR使得Internet更加的具有可延展性,因为网络可以分配一个合适的子网出来。

(2)CIDR基于其实际网络规模和短期预测需求,使IPv4和IPv6地址块分配给organizations,也可以用于将IPv4和IPv6地址空间分配给因特网服务提供商以及最终用户,可变长度子网掩蔽(VLSM)是CIDR使用的一种技术


拿123.234.100.56/24做例子,我们从中可知子网掩码是255.255.255.0,我们通过原来的IP地址可以知道路由前缀是123.234.100.0,这样,前缀知道了,所需子网也知道了,就可以去分配空间了,前缀参考资料:https://blog.csdn.net/hrl7752/article/details/78037033

表示示例
例10.2.1:
ip prefix-list 2 permit 2.2.2.0/24 //(匹配前24位:2.2.2.* ,掩码必须为24位)
例10.2.2:
ip prefix-list 2 permit 2.2.2.0/24 ge 25 le 30 //(匹配前24位:2.2.2.* ,掩码必须为25-30    位)
例10.2.3:
ip prefix-list 2 permit 2.2.2.0/24 le 32 //(匹配前24位:2.2.2.* ,掩码必须为24-32位)
例10.2.4:
ip prefix-list 2 permit 2.2.2.0/24 ge 26 //(匹配前24位:2.2.2.* ,掩码必须为26-32位)
例10.2.5:
ip prefix-list 3 permit 0.0.0.0/0 le 32  //(匹配所有)
(3)对于CIDR IPv4和V6地址分配,IANA(Internet指定号码权限)分配区域Internet注册表,即RIR、CIDR块。RIR、CIDR被分配给国家和巨大的领土。RIRS被细分为LIR,LIR是本地互联网注册子网,进一步细分为适合本地网络大小的子网。

11.选项和填充(Options & Padding)(32bits)

选项领域被用来向主机发送请求,在选项的末尾,包括填充,填充是被用来确保IP v4报头的长度是个32bit的倍数(通过填充一些bits,相当于补位),2中的IHL就会被padding拿来考察是否长度上有匹配。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章