【Linux】网络层之IP协议

IP协议

  • 网络层
  • 网络层协议的作用
  • IP协议的格式
  • IP协议是如何管理地址的
    • 特殊的IP地址
    • 公网IP和私网IP

网络层

在整个互联网中,为了能够标识每台机器,所有连接互联网的机器都会被分配一个IP地址,实现端到端之间的数据透明传送,具体功能包括寻址和路由选择,连接的建立,保持和终止。

网络层协议的作用

网络层主要的协议有IP协议,IP协议主要就是将数据包从源地址传输到目的地址,同时负责数据包的路由选择,分段和重组的功能。

IP协议的格式

【Linux】网络层之IP协议_第1张图片
从图中可以看到,主要分为20个字节的固定长度和40字节的选项(IP头部),剩下的就是数据本身了(其实数据本身也包含了传输层头部+应用层数据)

那么在20个字节的固定长度中包含: 4位版本号:IP协议的版本
4位头部长度:IP协议头部的长度,4个bit位表示的最大数字是15,15*4=60表示最大的IP头部长度是60字节 8位服务类型:
16位总长度:IP数据报整体占多少字节
16位标识:标识发送的报文是否是同一个报文,如果IP报文在数据链路层被分片了,那么每个片中的16位标识是相同的
3位标志字段:第一位保留,第二位为1表示禁止分片,如果报文长度超过MTU就会丢弃该报文,第三位表示更多分片,如果进行了分片,那么最后一个分片置为1,其他置为0
13位片偏移:表示当前分片在原报文的哪个位置,以保证分片之后的报文也是连续的
8位生存时间:数据报到达目的地的最大报文跳数,一般是64,每经过一个路由就会减一,如果到0还每到达就会被丢弃,防止出现路由循环
8位协议:表示上层协议类型 16位头部校验和:使用CRC校验,鉴别IP头部是否损坏 32位源地址和32位目的地址:表示发送和接收端的IP地址
选项:40个字节的选项,可有可无

IP协议是如何管理地址的

将IP地址分为两部分:网络号和主机号
网络号:标识两个不同的网段
主机号:在同一个网段下,主机之间有相同的网络号,但是主机号不同

对于如何划分网络号,使用了一种划分方案,CIDR
引入了一个额外的子网掩码来区分主机号和网络号,子网掩码是32位的正整数,将子网掩码和IP地址进行按位与运算即可得到该IP地址的网络号。

IP地址 140.252.20.68
子网掩码 255.255.255.0
网络号 140.252.20.0
子网地址范围 140.252.20.0~140.252.20.255

其中:子网地址中主机号全为0代表网络号,代表整个局域网,主机号全为1称为广播地址,可以给所有在此连接中的主机发送数据包

特殊的IP地址

为了进一步缓解IP地址枯竭的问题,还使用了动态IP分配地址,即只给接入网络的设备分配IP地址,使用IPV6协议升级IPV4,提高IP地址的数量,使用公网和私网IP

子网地址中主机号全为0代表网络号,代表整个局域网,主机号全为1称为广播地址,可以给所有在此连接中的主机发送数据包

公网IP和私网IP

私网IP:10...* 172.16.. 192.168..
这三个作为私网IP,其余的称为公网IP,当私网IP的机器需要和公网IP的机器进行通信时,就需要将其私网IP地址转化为公网IP地址,这种转换方式就称为NAT(地址转换协议)。

你可能感兴趣的:(linux,linux,网络)