目录
IP协议结构
版本:就是IP协议的版本号。目前只有 4 和 6。这里介绍的是IPV4
首部长度:单位是4字节。于TCP首部长度完全一致,也是可变的,因为有选项。
服务类型:八位中只有四位有效。服务类型就四种,表示方法是 其中的四位只有一位为 1,其余都为0. 四种类型分别是:
最小延时,最大吞吐量,最高可靠性,最小成本。这四种类型也就代表了IPV4工 作时的四种状态。
总长度:整个报文的长度。这个值 - 首部长度 = TCP/UDP报文长度
虽然这个总长度最大才64KB,如果数据大于最大值,那么IP就会把数据拆分,发 送过去后再进行组装(都是再网络层进行)。
标识:被拆开的报文标识都一致,这样就方便组装它们。
标志:第一位保留
第二位为1,表示标志报文长度超过MTU(指网络能够传输的最大数据包大小),则丢 弃报文。
第三位,类似结束标志。一组被拆开的最后一个分片此位为1,其他的为0。
片偏移:本质上标识被拆开片的前后顺序。是分片相对于起始的偏移量。
生存时间:一个报文在网络上能够传输的最大次数。虽然叫时间,但这是以次数来表示的。
最开始设定一个值,比如32,该报文被一个路由器转发一次,值就减一,直到为 0还没有发送成功,就丢弃该报文。(防止发送地址是错误的)
协议:表示当前在和是使用的哪个协议(UDP/TCP)。
首部校验和:仅对首部进行校验(使用CRC),因为载荷部分已经校验过了。
源IP地址:发送方的IP地址。
目的IP地址:接受方的IP地址。
选项:最大可40字节。
数据:传输层的数据。
IP地址管理
一个IP地址是由两部组成 网络号 和 主机号
网络号:标识网段。保证相互连接的网段具有不同的标识。这就是局域网。
主机号:标识主机。在同一网段内,主机间的网络号虽然一样,但主机号必须不同。
子网掩码:IP地址中,网络号和主机号的分界就是由子网掩码来区分的。
在cmd中输入ipconfig就可以看到子网掩码了
点分十进制转成二进制:
1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000
计算:把IP地址转成2进制后,和子网掩码对应的2进制位进行逻辑与(只有都为1才是1)操作得出网络号;IP地址再减去网络号得出主机号。
特殊IP
主机地址全为0:这就是网络号了,代表这个局域网
主机地址全为1:这就是广播地址,给同一个链路中的所有主机发送数据。UDP协议可以广播发送,当UDP往 192.168.0.225 这个地址发,局域网中的所有设备都可以收到。
123.*:用于本机环回测试,通常为127.0.0.1
解决IP地址不够用
由于IP地址只有32位,最大标识也才 4,294,967,296 。完全不够给地球上所有的设备使用。为了解决IP地址不够用的问题,通常有以下方法:
动态分配IP地址
把不常用的IP地址分配给用的设备,这样就提高了利用率。但是治标不治本。
NAT网络地址转换
本质上是用一个IP地址代表一批设备。在NAT下把IP地址分成了两大类
内网IP(私有IP):有 10.* 172.16.*~172.31.* 192.168.*
外网IP(公网IP):除了内网都是公网IP。
公网IP必须是唯一的。私有IP可以在不同的局域网下重复。
NAT虽然有效的解决了IP地址不够使用的问题,但是也让网络环境变得更加复杂。
IPV6
IPV6则是一个全新的协议,它有128位来表示地址,这是原来最大地址数量的4次方。足够使用了。不过IPV6和IPV4不兼容,所以升级换代就很麻烦。
有什么问题评论区指出。希望可以帮到你。