16位标识,3位标志,13位片偏移,这几个字段都是为辅助拆包、组包提供的。
一个数据报构造出来,会有一个初始的TTL数值,比如32或者64,或者128,这个数据报每次经过一个路由器转发,TTL减一。如果一直减到零了,还没有到达目标,此时就认为这个包可以丢弃。
注意:此处如果校验和不一致,直接丢弃IP协议,不负责重传。如果上层使用TCP协议,TCP会在没收到ACK之后就重传。
使用三个点 . 把32位四个字节的数字给分割开。分成四个部分,每个部分分别使用0-255十进制整数表示。例如172.18.33.76
问题一:16位总长度是否意味着一个IP数据报最大只能支持64KB?
答案:是否定的,一个IP数据报携带的数据载荷太长如果超过了64KB,就会在网络层针对数据进行拆分,把一个数据拆成多个IP数据报再分别发送给接收方,再重新拼装。具体实现过程(以下是针对数据报超过64KB的操作):
发送方:把数据交给传输层(封装),传输层交给网络层(封装),网络层就把这个数据拆包,比如拆成两份,这两份再交给数据链路层,由以太网封装成两个数据帧。
接收方:数据链路层,针对两个数据帧进行分用,得到两个IP数据报,交给网络层,网络层针对这俩IP数据报进行解析,把里面的载荷拼成一个再交给传输层
- 这个方法没有从根本上增加IP地址,只是提高了利用率,治标不治本。
在NAT背景下,就把IP地址分成两个大类:
- 内网IP/私网IP : 10.* , 172.16.* -172.31.* ,192.168.*
- 外网IP/公网IP : 剩下的是公网IP
NAT要求公网IP必须是唯一的,私网IP可以在不同的局域网中重复出现。
注意:
如果某个私网里的设备想访问公网的设备,就需要对应的NAT设备(路由器),把IP地址进行映射,从而完成网络访问。
反之,公网的设备无法直接访问私网的设备,不同局域网里的私网设备没法直接相互访问。
- 使用16字节表示IP地址
实际上,世界上仍然是以NAT+IPv4+动态分配来进行网络组建的,真正使用IPv6的地方非常少。
IP协议地址管理,把一个IP地址分成两个部分,一个叫做网络号,一个叫做主机号。
作用:用来给一个IP地址划分网络号和主机号