目录
🌸1、基本概念
-
IP协议是隶属于网络层的协议,它主要作用是负责提供数据在跨网络传输中进行路由的能力
-
IP是整个TCP/IP协议族的核心,也是构成互联网的基础
-
IP主要包含三方面内容:IP编址方案、分组封装格式及分组转发规则
网络层和传输层
注意:网络层只是提供主机A到主机B路由的能力,从主机A路由跳到其他主机设备需要链路层解决
-
网络层提供的是将数据从主机A跨网络传输到主机B的能力,但是它不一定是可靠的,可靠性的问题是由上层TCP协议来解决的
-
网络层主要进行跨网络数据传输,数据到达对端后传输层是否造成乱序或字节翻转问题是由TCP解决可靠性问题的
-
总之,TCP协议负责提供可靠性策略,让数据到达对端后应用层完整的收到,而网络层负责跨网络传输数据,二者是相辅相成的,如果没有网络层就无法进行跨网络传输
-
TCP/IP协议族:用来将数据从主机A跨网络 “可靠的” 传输到主机B
-
主机:配有IP地址,但是一般不进行路由控制(需要配置,内部配有路由表,也具备路由功能)
-
路由器:即配有IP地址,又能进行路由控制
-
节点:主机和路由器的统称
Windows下的路由表 -> 使用管理员方式运行终端,输入指令:route print
🌺2、IP协议报文结构
🍨2.1、4位版本号
概念
IP协议有二种版本号,分别是IPv4 和 IPv6
-
版本号(version):指定IP协议的版本,对于IPv4来说,就是4;对于IPv6,它是另外一种不同的协议,它的报文结构与IPv4不同
-
IPv4:网际协议版本4(英语:Internet Protocol version 4,IPv4),又称互联网通信协议第四版(32位IP地址)
-
IPv6:互联网协议第6版(英文:Internet Protocol Version 6),是互联网工程任务组(IETF)设计的用于代替IPv4的下一代IP协议,该版本IP地址有128位
为什么要有二套版本号呢?
-
因为由于IPv4最大的问题在于网络地址资源不足(只有32位地址),严重制约了互联网的应用和发展
-
IPv6的出现,不仅能解决网络地址资源数量的问题(IPv6有128位地址),而且也解决了多种接入设备连入互联网的障碍
-
总的来说就是随着网络的扩大IPv4的地址不够用了(虽然有NAT技术),限制了网络的发展,所以才出现了IPv6
🍩2.2、4位首部长度和16位总长度
-
IP报头的标准长度是20个字节(不包括选项字段长度)
-
那么我们如何确定选项的大小呢? 答案就是:4位首部长度
-
4位首部长度:表示该IP报头有多少个32位bit(4字节);4位的的取值范围是[0, 15](0000 - 1111)可以得出IP报头最多有15 * 4 = 60个字节的数据
-
IP报头标准长度为20字节,所以4位首部长度的值至少为5(0101)
如何计算选项的字节长度呢???
-
通过4位首部长度可以算出,因为已知标准报头长度为20个字节
-
只要将首部长度的值乘以4,然后再减去标准报头长度就可以得出选项的大小了
-
16位总长度是:整个IP报文的总长度,单位是字节
-
已知IP报头最多可以有60个字节,只要把总长度减去4位首部长度的值就能得到数据总的长度
-
比如IP报头只有标准20个字节。选项没有数据,有效载荷(数据)有100字节,那么总长度为120字节
🍪2.3、8位生存时间(TTL)
概念
-
8位生存时间(Time To Live):数据报到达目的地的最大报文跳数(一般是64)。每次经过一个路由器,TTL自减,一直减到0还没到达,那么就丢弃了,这个字段主要是用来防止出现路由循环
-
TTL本质是一个计数器,IP报文的生命周期是随着TTL而变化的,TTL为0,就会被路由器丢弃
-
路由过程中可能由于网络的BUG或对端主机不可达等不可控因素的存在,导致IP报文在网络中长时间的游离