首页 > 其他分享 >ipv4

ipv4

时间:2023-03-06 18:11:51浏览次数:57  
标签:字节 IP 192.168 ipv4 分片 Byte 32

IPv4概述

  1. IP协议(Internet Protocol)是TCP/IP协议族中最核心的协议,提供不可靠的、无连接的、尽力而为的数据报传输服务。

IPv4报文格式

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version|   HL  |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Internet Protocol Version 4, Src: 192.168.43.184, Dst: 221.204.183.35
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes (5)
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
        0000 00.. = Differentiated Services Codepoint: Default (0)
        .... ..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)
    Total Length: 800
    Identification: 0x9c7a (40058)
    Flags: 0x40, Don't fragment
        0... .... = Reserved bit: Not set
        .1.. .... = Don't fragment: Set
        ..0. .... = More fragments: Not set
    ...0 0000 0000 0000 = Fragment Offset: 0
    Time to Live: 128
    Protocol: TCP (6)
    Header Checksum: 0x0000 [validation disabled]
    [Header checksum status: Unverified]
    Source Address: 192.168.43.184
    Destination Address: 221.204.183.35
    Options:
    Padding:
字段 长度 字段说明
Version 4 bit 版本号,0100(十进制4)表示IPv4,0110(十进制6)表示IPv6。
Header Length 4 bit IP头长度,取值范围[0101-1111]也就是[5-15],IP头长度[5-15]*4=[20-60Byte],在IPv4 options字段为空的情况下,IP头长度为20Byte。该值限制了记录路由选项。以4字节为一个单位。
DSCP/Tos 1 Byte 区分(差分)服务代码点,又叫服务类型,该字段表示该数据包的优先级,主要用于qos,RFC791中将数据流分为8个优先级,取值越大,优先级越高,而RFC2474中对该字段重新定义,把前6位定义成DSCP,可以标识64个优先级,后两位保留。
Total Length 4 Byte 数据包的总长度(MTU),包括IP头长度,单位为字节,最长为65535Byte,但以太网中最大MTU不得超过1500Byte(受网卡程序限制)。
Identification 4 Byte 标识符,简称ID字段,主机每发一个报文,加1,该字段主要用于报文分片重组,当MTU大于1500B时,数据包会被分片。该字段与Flags、Fragment Offset字段联合使用。
Flags 1 Byte 标记,Bit 0: 保留位,必须为0。Bit 1: DF(Don't Fragment),能否分片位,0表示可以分片,1表示不能分片。Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。IP层没有重传机制,只能依靠传输层重传,只要有一片数据包丢失,后面的数据包都要再传一次。所以避免IP分片。
Fragment Offset 2 Byte 片偏移,分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。
Time to Live 1 Byte TTL生存周期,每经过一个3层节点该字段就会-1,如果该字段减为0,设备就会丢弃,该字段主要用于三层防环(防止路由环路导致数据包在网络中不停地转发)。
Protocol 1 Byte 协议,该字段用于标识上层(传输层)所使用地协议。例如常见的有:ICMP 为1,TCP为6,UDP为17,ospf为89,vrrp为112。
Header Checksum 4 Byte IP头部校验,只检验数据包的首部的正确性,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。wireshark可以设置是否进行校验,默认不校验。
Source Address 4 Byte 源地址,在网络中没有nat的情况下,在整个传输过程中该字段不会变化。
Destination Address 4 Byte 目的地址,在网络中没有nat的情况下,在整个传输过程中该字段不会变化。
Options 可变 可选项,主要用于测试、排错、安全等,从1字节到40字节不等,主要包含1.松散源路由(Loose Sourece Routing)2.严格源路由(Strict Sourece Routing)3.路由记录 4.时间戳
Padding 可变 填充字段,全填0,一般和Options字段搭配使用。因为IP报文头长度的单位是4B(32bit),所以IP报文头必须是32bit的整数倍,因此在可选项后面,该字段会填充若干个0,以达到32bit的整数倍。

extend

icmp分片

ping -l 1600 192.168.3.143(-l length 1600B),在客户端抓的报文。

1678023243174

因为ping 指定了发送数据的大小为1600B,data(1600B)+8B(icmp)+20B(ip)=1628B>1500B,实行分片

Packet:9,data(1480B)+20B(ip)+14B(Ethernet v2)=1500B

Packet:10,data(120B)+8B(icmp)+20B(ip)+14B(Ethernet v2)=162B

Packet11-12为reply包,和request包一样。

a4b6620eade677410e4bd367953732b

IPv4数量

  1. 因IPv4报文中Source Address/Destination Address只有32bit,可用地址2的32次方4294967296个,但是有几类特殊地址是无法使用的:
  • 127.x.x.x 本地地址段
  • 224.x.x.x 组播地址段
  • 255.255.255.255 广播地址
  • 10.0.0.0~10.255.255.255 A类地址
  • 172.16.0.0 ~172.31.255.255 B类地址
  • 192.168.0.0~192.168.255.255 C类地址

​ 大多数公网IPv4地址被米国所申请占用,当前,推动IPv6的规模部署已成为建设网络强国的重要国家战略。“十四五”规划和2035年远景目标纲要强调全面推进IPv6商用部署。

TTL

  1. 判断网络距离
  • 根据TTL字段数值减了多少来判断,目标与自己之间经过了多少三层设备。
  1. 判断操作系统
  • 根据icmp返回来的ttl字段值来估略判断操作系统的类型。多数Linux操作系统ttl字段默认为64,微软win7、win10操作系统ttl字段默认为128。
C:\Users\jack>ping 192.168.3.1	//无线路由器(Linux内核)
正在 Ping 192.168.3.1 具有 32 字节的数据:
来自 192.168.3.1 的回复: 字节=32 时间=1ms TTL=64

C:\Users\jack>ping 192.168.3.143	//redhat(Linux内核)
正在 Ping 192.168.3.143 具有 32 字节的数据:
来自 192.168.3.143 的回复: 字节=32 时间=4ms TTL=64

C:\Users\jack>ping 192.168.3.209	//手机(Linux内核)
正在 Ping 192.168.3.209 具有 32 字节的数据:
来自 192.168.3.209 的回复: 字节=32 时间=7ms TTL=64

C:\Users\jack>ping 192.168.3.94		//win10
正在 Ping 192.168.3.94 具有 32 字节的数据:
来自 192.168.3.94 的回复: 字节=32 时间=3ms TTL=128

华为IP 报文格式大全-https://support.huawei.com/hedex/hdx.do?docid=EDOC1000105967&id=ZH-CN_CONCEPT_0254009200

标签:字节,IP,192.168,ipv4,分片,Byte,32
From: https://www.cnblogs.com/wefjack/p/17184864.html

相关文章

  • 记录因net.ipv4.tcp_tw_recycle=1内核参数导致ssh登录不上的问题
    机器配置了 net.ipv4.tcp_tw_recycle=1 ,表示开启TCP连接中TIME-WAITsockets的快速回收。这种配置会导致一个问题,当服务是一个网关类的应用的时候且访问量很大的时候容......
  • ipv4和ipv6写法和意义
    ipv4:四组八位二进制11111111:11111111:11111111:11111111,则每组都为0~255,一般写法为255:255:255:255 ipv6:八组四位十六进制ABCD:ABCD:0000:0000:......
  • 学习TCP/IP(4):网际协议 IPv4-转发IP数据报
    学习TCP/IP(4):网际协议IPv4-转发IP数据报引言在网络的世界里,数据报转发可以分为两种类型:直接交付和间接交付。直接交付直接交付是指把数据报从一台机器通过物理网络......
  • 计算机网络之网络层- IPv4协议
    IPv4协议:Internet网络层最核心的协议。定义了如何封装上层协议(如UDP、TCP)的报文段;定义了Internet网络层寻址(IP地址)以及如何转发IP数据报等内容。1. IP数据报格式1. ......
  • IPv4向IPv6的三种过渡技术
    随着互联网IPv4公有地址的枯竭,各国都加大了推广IPv6的速度。IPv4向IPv6的过渡技术主要包括双协议栈、隧道模式和翻译技术。实现IPv6节点与IPv4节点互通最直接的方式是在IPv6......
  • linux启用ipv4转发功能
    一、临时生效,重启失效1、sysctl-wnet.ipv4.ip_forward=12、echo1>/proc/sys/net/ipv4/ip_forward二、永久生效修改/etc/sysctl.conf,增加一条:net.ipv4.ip_forward=1......
  • Coolify系列-解决WARNING: IPv4 forwarding is disabled. Networking will not work.
    背景我在windows电脑安装了一个VM,使用VM开启了Linux服务器,运行docker,然后遇到了这个报错。解决首先:在宿主机上执行echo"net.ipv4.ip_forward=1">>/usr/lib/sysctl.......
  • Ubuntu虚拟机不显示ipv4地址 (虚拟机无法连接网络)
    相信很多朋友都遇到过虚拟机连接不上网络或者说使用ifconfig不显示ipv4网络地址的情况,就想下图一样:  网上请教很多大神都说更改“网络连接”为“NAT模式”,但是试了无......
  • qt 取得ipv4的值
    QHostInfohostinfo=QHostInfo::fromName(QHostInfo::localHostName());QList<QHostAddress>addressList=hostinfo.addresses();QStringip="0.0.0.0......
  • IPv6 vs IPv4使用差异说明
    1IPv6vsIPv4使用差异说明1.1约束限制chrony支持全局地址(globaladdress),不支持链路本地地址(link-localaddress)。Firefox支持通过http/https协议访问全局地址(global......