网络层
在整个互联网中,为了能够标识每台机器,所有连接互联网的机器都会被分配一个IP地址,实现端到端之间的数据透明传送,具体功能包括寻址和路由选择,连接的建立,保持和终止。
网络层协议的作用
网络层主要的协议有IP协议,IP协议主要就是将数据包从源地址传输到目的地址,同时负责数据包的路由选择,分段和重组的功能。
IP协议的格式
从图中可以看到,主要分为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称为广播地址,可以给所有在此连接中的主机发送数据包文章来源:https://www.toymoban.com/news/detail-678157.html
公网IP和私网IP
私网IP:10...* 172.16.. 192.168..
这三个作为私网IP,其余的称为公网IP,当私网IP的机器需要和公网IP的机器进行通信时,就需要将其私网IP地址转化为公网IP地址,这种转换方式就称为NAT(地址转换协议)。文章来源地址https://www.toymoban.com/news/detail-678157.html
到了这里,关于【Linux】网络层之IP协议的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!