目录
1. 网络层的工作
2. IP数据报
3. 地址管理
3.1 IP地址不够的问题
3.1.1 方案一:动态分配
3.1.2 方案2:NAT机制(网络地址转换)
3.1.2.1 将IP地址划分为2类
3.1.2.2 NAT转换的实现
3.1.3 方案3:IPV6地址
3.2 网段划分
3.2.1 分类的IP地址
3.2.2 无分类编址CIDR
4. 路由选择
4.1 距离向量算法
4.2 最短路径算法
网络层要完成的工作主要是两方面:
1. 地址管理:制定一系列规则通过地址,描述网络上一个设备的位置;
2. 路由选择:筛选或规划处更合适的路径供结点之间进行数据传输;
1. 版本字段:4位,值为4时表示IPV4,值为6时为IPV6;
2. 首部长度:4位,单位为4字节,即首部最大长度为4*0xf = 60字节;
3. 服务类型:8位,分别为3位优先权字段(已弃用),4位TOS字段和1位保留字段(必须置0);
4位TOS字段分别为:最小延时,最大吞吐量,最高可靠性,最小成本,四位彼此冲突,只有一位可置为1,用于表示IP协议不同的形态。
4. 总长度:16位,单位为字节,表示首部与数据部分之和的长度,数据报最大长度为-1=65535字节;
5. 标识:16位,同一数据报的各分片数据报具有相同标识;
6. 标志:3位,目前只有2位有实际意义:
(1)MF:1表示后面还有分片,0表示这已是若干数据报片中的最后一个;
(2)DF:1表示不允许分片,0表示允许分片;
7. 片偏移:13位,单位为8字节,表示某片在原始IP数据报中的相对位置;
8. 生存时间:8位,缩写为TTL,单位为跳数,指明数据报在互联网中至多可以经过多少路由器,最大值为255。TTL减为0时还未到达目标结点,就会被丢弃掉。从而避免了无法交付的数据包无限制地在互联网中兜圈子;
9. 协议:8位,表示此数据报的载荷部分使用何种协议(UDP或TCP);
10. 首部检验和:16位:只检验数据报首部,不包括数据部分;
11. 源地址:32位,发送IP数据报的主机的IP地址;
12.目的地址:32位接收IP数据报的主机的IP地址;
注:1. IP协议虽然存在64KB的限制,但IP协议通过标识、标志、片偏移三个字段,支持拆包组包功能;
2. 区别版本字段与协议字段:
版本字段:表示IP协议的版本;
协议字段:表示将IP数据报应交给传输层的哪个协议;
3. 源地址与目的地址均为32位,可见IP地址本质就是一个32位的整数,为了方便理解,常写作点分十进制形式,8位二进制(一个字节)表示为一个十进制,用3点隔开;
IP地址是一个32位的整数,能够表达大约,大致为42亿九千万,互联网发展至今,能上网的设备早已超过这个最大限制,如何解决IP地址不够用的问题,是一个需要思考的问题。
将IP地址动态分配给需要上网的设备,把当前不上网的设备的IP地址分配给需要上网的设备;
此方法只提高了IP地址的利用率,但并未增加IP地址的数目。
本质上是让一个IP地址代表一批设备。
(1)内网IP(局域网):10.0.0.0/8,172.16.0.0/12,192.168.0.0/16为内网地址块;
在同一个局域网内部,内网IP之间不能重复;
在不同的局域网中,内网IP可以之间可以重复;
(2)外网IP(广域网):其余的IP地址块均为外网IP;
外网IP始终不允许重复,必须保证唯一性;
注:(1)如果当前局域网呢有多个主机访问一个网站服务器,即使两个数据报的源IP均为NAT路由器映射后的外网IP,但这个数据报的端口号一般都是不同的(临时分配),故而NAT路由器会结合端口号将服务器返回的响应返回给目标主机;
(2)即使极小概率下,这多个设备的端口号如果也相同,在NAT路由器进行内网IP向外网IP进行映射并替换时,如果发现多个设备具有相同的目的IP与目的端口,就会检查它们的端口号是否相同,如果相同,也会实现端口号的替换,以区分不同的内网设备。
(3)NAT机制最大的优势是一个纯软件的方案,无需硬件加持。
(4)NAT机制下,局域网内部的设备能够主动访问外网的设备,但外网的设备无法主动访问内网的设备。
当前的网络环境就是结合NAT+动态分配的方式来解决IP地址不够用的问题;
IPV6采用16字节(128位)来表示IP地址,表示范围为0~,能表示的地址范围非常庞大;
IPV6的引入大大地扩展了地址空间,但这种地址扩充方案并未得到广泛应用,因为IPV6与IPV4不兼容,如需支持IPV6需要更换设备,导致向IPV6的过渡进程是比较缓慢的。
我国的IPV6普及程度是非常高的,国家也非常推荐使用IPV6。
一方面,在互联网公司的互联网产品中的一些app首屏加载页已经显示支持IPV6,比如手机淘宝;
另一方面,民用宽带也在积极升级,近几年新装的宽带都是直接赠送IPV6路由器的。
一般情况下IPV6虽然被支持,但并没有默认开启;
一个IP地址分为网络号与主机号两部分,其中网络号标识了一个局域网,主机号标识了局域网中的一个设备。
注意:1. 主机号全为0表示当前的局域网,不能分配给具体的主机;
2. 主机号全为1表示当前网络上的所有主机,表示广播地址,不能分配给具体的主机。
3. 以127开头的IP是环回IP,最常用的是127.0.0.1,表示设备本身,常用于测试代码。
这种分类的IP地址由于网络号的位数是固定的,因此管理简单,使用方便,转发分组迅速。
1. CIDR的记法为:{<网络前缀>,<主机号>};
2. 斜线记法表示为:IPV4地址/网络前缀所占的比特数,如:
128.14.35.7/20 = 10000000 00001110 00100011 00000111;
3. 子网掩码:在斜线记法中,斜线后面的数字就是地址掩码中1的个数,把二进制的IP地址与地址掩码进行按位AND运算即可得出网络地址,如:
/20 地址块的地址掩码是:11111111 11111111 11110000 00000000;
路由选择用于描述IP协议(IP数据报)的转发过程。
每个路由器内部都有一个数据结构的路由表,根据数据报中的IP地址查路由表;
其中的动态路由算法有: