IPv4地址
IPv4地址长度32位,四字节。IPv4地址包含网络号和主机号。
- 网络号:唯一的标识了一条物理链路或逻辑链路,对于该链路相连的所有设备来说网络号部分是共同的。
- 主机号:唯一标识了该链路上连接的具体设备。
1.按照主机数量分类
大型网络 | A类网络 | 包含大量主机的网络。大型网络数量少 |
中型网络 | B类网络 | 包含中等主机的网络。中型网络数量中等 |
小型网络 | C类网络 | 包含少量主机的网络。小型网络数量多 |
A类地址—-首个八位组第一位总是被设置为0。0被作为缺省地址部分,127被保留为内部回送地址。—十进制范围1~126.
B类地址—-总是把左边前两位设置为01。—十进制范围128~191
C类地址-—总是把左边前三位设置为110。—十进制范围192~223
保留地址包括:
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
192.168.0.0-192.168.255.255
2.地址掩码
地址掩码:表示整个数据链路的地址(其实就是网络号)
对于每一位IPv4地址位,设备都拿它与地址掩码的对应位进行布尔(AND 与)运算。通过向接口分配地址172.16.1.1 和掩码255.255.0.0.设备将会知道接口属于172.16.0.0.
3.子网和子网掩码
每个数据链路都必须有一个唯一的地址。所以用尽所有的IPv4地址,也只能给少于1700万个数据链路分配地址。
假如分配给网络的地址为B类地址172.21.0.0。五个数据链路将主机和路由器互联起来。将地址掩码设置为24位,被扩展了8位。
现在IPv4地址包括:网络部分,子网部分,主机部分。地址掩码变为子网掩码。
不是所有路由选择协议都支持子网地址。一些协议不能区别全0子网和主网络号,例如子网0 172.21.0.0 和主网IP地址 172.21.0.0
有类别路由选择协议也不能区分全1子网的广播地址和一个所有子网的广播地址。例如:全1子网172.21.255.0其广播地址172.21.255.255,;但是这也是主网172.21.0.0的所有子网上所有主机的广播地址。
子网划分正确表述“一个使用8位进行子网划分的B类地址”or“带有24位掩码的B类地址”
4.打破八位组界线
每次可以借任意位成为子网
5.IPv4报文
- version—–指明IP版本号为4.这个字段长度为4位
- Internet Header Length—指明在IPv4包头中以4字节为单位的块的数量。这个字段的长度是4位。因为一个IPv4报头的最小长度是20字节,所以IHL字段对的最小值为5.IPv4选项可以通过增加4字节来扩展最小的IPv4报头的长度。如果一个IPv4选项没有用完IPv4选项字段中所有的4个字节,剩下的字节将填充为0,以使得整个IPv4报头保持32位(4字节)的整数倍。当这个字段为最大值0xF时,IPv4报头包括了选项的最大长度是60(15×4)。
- Type of service——指明了这个包在IPv4网络上通过路由器传输时,希望得到的服务类型。这个字段的长度为8位,它包含了优先、延迟、吞吐量和可靠性特征。
- Total Length—–指明了IPv4包的全部长度(IPv4报头和IPv4有效载荷)并且不包括链路层的帧。这个字段的长度是16位,它标明了IPv4包的最大长度是65535字节。
- Identification—–识别特殊的IPv4包。这个字段的长度是16位。识别字段在IPv4包的远端是可以选择的。如果IPv4包是分割开的,那么所有分片中将保留识别字段以便目的节点能够重新组装这些分片。
- Flags—–标志用在分割处理时。这个字段的长度是3位,然而只有其中两位为当前使用所定义。有两个标志—–一个指明了IPv4包是否被分割,另一个指明了是否还有更多的分片在当前帧之后。
- fragment offset——指明了分片相对于最初的IPv4有效载荷中偏移的位置。这个字段的长度是13位。
- Time to Live—–指明了IPv4包在被丢弃之前能够通过的最大连接数。这个字段的长度是8位。生存期字段被用来作为时间计数器,根据消耗的TTL一个IPv4路由器确定了IPv4包向前传送要求的必要时间(秒)。q当TTL等于0时一个ICMP超时( Time Expired)报文将被传送到源IPv4地址,并且这个包会被丢弃。
- Protocol——指明了高层协议。这个字段是8位。例如TCp使用的协议为6,UDP使用的协议为17,ICMP使用的协议时1.Protocol字段是用来把一个IPv4包进行多路分解到高层协议。
- Header checksum——提供了只是对于IPv4头部的校验。这个字段的长度为16位。IPv4的有效载荷不包括这个校验计算作为有效载荷,他通常是包含自己的校验。每个IPv4节点接受到IPv4就检查其IPv4头部校验,如果校验检查失败就把这个IPv4包丢弃。当路由器向前传送一个IPv4包就一定会消耗TTL。因此在源站和目的站之间的每一跳,他头部校验都会被重新计算一次。
- Source Address——-保存源主机的IPv4地址。32位
- Destination Address—–保存目的端主机的IPv4地址。32位
dress——-保存源主机的IPv4地址。32位 - Destination Address—–保存目的端主机的IPv4地址。32位
- Options——保存一个或者更多的IPv4选项。这个字段的长度是32位的倍数。如果IPv4的选项没有用到32位,必须将其填充到32位,以保持IPv4头是4字节块的整数倍,以便Internet Header Length字段对其进行说明。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100128.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...