IPv4报文格式

IP数据报 (IP Datagram)。这是一个与硬件无关的虚拟包,由首部和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是全部IP数据报必须具备的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首都中的源地址和目的地址都是 IP 协议地址。安全

图片.png

报文注释网络

图片.png

IP报文内容
ide

Frame 1197: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface 0
Ethernet II, Src: localhost (e4:d5:3d:a2:64:95), Dst: localhost (c8:3a:35:58:12:c8)
Internet Protocol Version 4, Src: localhost (192.168.0.104), Dst: localhost (192.168.0.1)
    0100 .... = Version: 4 #占4bite,指IP协议的版本
spa

    .... 0101 = Header Length: 20 bytes (5) #首部长度就是 20 字节
3d

    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) #占8bite,目前被QoS所使用
blog

        0000 00.. = Differentiated Services Codepoint: Default (0)
        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)

    Total Length: 60 #首都数据之和的长度
接口

    Identification: 0x5fc7 (24519) #标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报
图片

    Flags: 0x00 #MF=1即表示后面“还有分片”的数据报。MF=0表示这已经是若干数据报片中的最后一个
ip

        0... .... = Reserved bit: Not set
        .0.. .... = Don't fragment: Not set
#不能分片
ci

        ..0. .... = More fragments: Not set
    Fragment offset: 0
#数据字段的起点,该片从何处开始

    Time to live: 64 #数据报在网络中的寿命

    Protocol: ICMP (1) #数据包携带的数据是使用何种协议

    Header checksum: 0x9940 [validation disabled]#检验数据报的首部,但不包括数据部分

    [Header checksum status: Unverified]
    Source: localhost (192.168.0.104)
    Destination: localhost (192.168.0.1)
    [Source GeoIP: Unknown]
    [Destination GeoIP: Unknown]

IP数据报首部的可变部分:支持排错、测量以及安全等措施,内容很丰富。此字段的长度可变,从 1-40个字节不等,取决于所选择的项目。
Internet Control Message Protocol

为何要分片?
1960年以前,数据通讯是基于电路交换技术,根本没有分片
后来出现了分组交换,才有了分片,早期分片为128字节,后来分组交换网络中最大传输单位(MTU)定义了最大能够传输1500字节的数据,刨去20字节的IP包头长度,一个IP包最多可携带1480字节的数据,若是传输的数据块超过1480字节时,网络层就不得不把它分片,封装成多个网络包
接收方又是靠什么重组分片的?
IP数据包头,有专门用来数据重组的相应字段flags,好比offset、ID、MF等,能够按照数据包的分片顺序,从新组装起来

这些分片的数据单元到达对端的链路和时间都是不一样的,对端根据IP首部中的标示符(Identification)、标志(Flag)、段偏置值字段重组数据包

Identification(肯定IP同一个数据包)
Fragment offset(来肯定来一个分片是第一个、第二个)
Flags More Fragments(肯定无分片)

IP数据包的总长度过大超过链路的最大MTU时,数据包就会被分红多片,而在现在的IPv4的网络中,数据传输时不可靠的,是尽力而为的


IPV4.jpg


IP数据包分片的几个概念:
最大传输单元(MTU):是指由IP包头和数据部分组成的IP数据包长度(1480),MTU值存在于每个网络接口,不在具体数据包中

最大报文段大小(MMS):是指TCP报文段内数据承载的最大长度(1460),即上层协议交付给TCP的每一个数据单元的最大长度

MSS.jpg

TCP是如何避免被发送方分片的?
TCP能够避免被发送方分片,由于TCP会在三次握手的时候,协商最大的MSS,而后主动把数据分红小段再交给网络层,因此网络层不须要分片
UDP就没有MSS的概念,把全部数据交给网络层

MTU.jpg

MTU2.jpg

TCP/ipv4版本存在的安全隐患有一、缺少数据源验证机制三、缺少对数据包的完整性的验证机制四、缺少机密性保障机制

相关文章
相关标签/搜索