本文分享自华为云社区《计算机的“网络层”究竟有哪些需要学习的?9个知识点看你是否都了解了》,作者:breakDawn 。
1.IP地址1.1 分类表示法:
分类表示法已经不常用了。
1.1.2 分类表示地址的其他说明1.2 无分类编址CIDR
Classless Inter-Domain Routing 无类型域间选路
CIDR有三种编址方式:
对于CIDR编址
子网号的全0和全1没有特殊含义,但不可设置成全0或者全1。
主机号的全0指本网络, 全1指广播。(网络号仍然遵从ABCD地址的规则)
2 IP数据报文格式
IP报文的首部至少有20个字节(160位),首部如下:
上面可以看到IP报文的以下限制:
首部长度字段可以看出首部长度最多可以位60字节,所以任选项最多40字节报文总长度最大为65535, 但是由于MTU的限制(链路层防冲突机制导致的),一般都要做分片, 分片后就会用上分片标识和片偏移了。Q: IP报文里有什么?可以不按顺序或者字节来讲一讲
A:
3.路由概念
Hub集线器在同一个冲突域通信无法分割;交换机在同一个广播域通信,可分割冲突域;路由器实现不同广播域间通信,可分隔广播域。
3.1 路由表
假设某个路由器在N1网络,他的路由表如下:
特定IP地址的子网掩码为全1,所以一般都是x.x.x.x/32
3.2 路由网络匹配
如果路由表中的目的网络由很多,怎么确定IP和路由表中的目的网络是匹配的?
使用 最长前缀匹配, 即前缀匹配得最多的就是目的网络。
优化算法可用二叉线索树来确认最长前缀。
3.3 ARP解析
全称Address Resolution Protocol,地址解析协议。
从主机发给路由, 或者路由发给路由时,底层还是得封装一层mac地址然后往下交给交换机。
那么ip和mac地址的对应关系, 是怎么得知的?
答案就是ARP协议
本质就是当mac缓存表里没有ip和mac的对应关系时, 主机或者路由会广播ARP报文, 对应ip方向的交换机会把报文发送回来,这时候就直到mac地址和ip的对饮关系了。
3.4 RARP逆地址解析协议
由mac地址反取ip。
因为ip不存在,无法直接转给给路由。所以会比ARP难。
过程:
1)将源设备和目标设备的MAC地址字段都设为发送者的MAC地址和IP地址,发送主机发送一个本地的RARP广播,能够到达网络上的所有设备,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;
2)本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
3)如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何的响应;
4) 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。
4 ICMP协议
全称Internet control message protocl,网络控制报文协议
他会包装在IP的数据报文中,并把首部的协议类型改成ICMP那个数字。
首部总共8个字节,分别为
2字节的ICMP类型
2字节的ICMP报文代码(类似错误码)
4字节的校验和
后面就是数据部分了。
常见的2种用途:
1. 发送网络层之间的差错报告,例如:
差错报告有以下其他特点:
1. ICMP自身出错时,不会再发ICMP差错报文
2. 发送一些询问报文,例如:
5 DHCP协议
全称Dynamic Host Configuration Protocol, 动态主机配置协议
当某个局域网内新增了一台主机,这个主机的ip是怎么生成的呢?这就会用到DHCP协议
主机所在网内会有一台DCHP服务器。
当新主机加入时,发生如下之事:
主机先“广播”自己,告诉大家“我来了,谁给我一个IP地址”(他一开始不知道DHCP在哪)DCHP服务器收到后,会分配一个IP地址,但因为不知道发给谁电脑提示ip地址错误网络无法连接,所以也只能“广播”,告诉大家“我这有个ip,刚才谁要的,自己来领一下”主机收到DHCP广播的报文后,就能知道自己的ip和dhcp服务器位置了。于是给DCHP服务器发送请求,告诉他“我收到了你发来的ip了”DCHP收到后电脑提示ip地址错误网络无法连接,确认了他的信息,并加入到DHCP本地的数据库中,后面分配新ip时就会排除掉这个ip了。
有以下几个注意点:
如果有多个主机同时应答了DHCP的广播, 则会选择最先到达的做分配。分配的ip是临时的
DCHP可以认为是基于UDP的应用层协议,但本质是为了寻求新主机的动态ip地址
6.路由表的最优下一跳地址如何计算?
可以理解为 在一个复杂的拓扑图下, 怎么选择最优的一个路由做目的地址的下一跳。
有2种方式:
6.1 RIP协议
全称Routing Information Protocol,路由信息协议
是一种动态路由信息协议。
所以RIP本质也是基于UDP的应用层协议,但是目的是为了网络层的最优路由选取。
6.2 OSPF协议
open shortest path first,开放最短路径优先协议
指路由器里有全网的拓扑结构,使用最短路算法计算最优路由
因此路由会把自己的连接情况通过OSPF协议发给所有其他路由,以建立拓扑图。
这个是属于IP层的协议,不借助UDP。
RIP和OSPF是自治网络系统AS里的选路措施。
AS里的选路措施被称作IGP(内部网关协议)
1个AS里只会有一种选路措施。
而跨自治系统的协议叫EGP(外部网关协议)
通常使用BGP协议
6.3 BGP协议
Border Gateway Protocol边界网关协议
Q: RIP协议下路由表什么时候更新?
A:
Q: 路由中毒是什么?
A:
路由中毒是指在路由信息在路由表中失效时,先将度量值变为无穷大的数,而不是马上从路由表中删掉这条路由信息。 然后再将中毒路由信息发布出去,当相邻的路由器收到该中毒路由就可以通过其度量值是16,说明该路由是无效的。
因为RIP协议中的度量值其实就是跳数,而RIP协议的跳数最大是15,大于15的目的地被认为是不可达,所以当其度量值为16,就表示这是一个无效路由,这就是所谓的路由中毒,这个数字在限制了网络大小的同时也防止了一个叫做“记数到无穷大”的问题。
Q: 收到中毒路由的路由器会怎么做?
A:
收到中毒路由信息的相邻的路由器会发送一个毒性逆转的信息,表示已经收到中毒路由信息。
那么为什么收到中毒路由的路由器为什么要回复一个毒性逆转的信息?这是因为如果不回复的话,那么发送中毒路由的路由器就会一直以广播的形式发送中毒路由,直到相邻的路由器收到并回复一个毒性逆转的信息。
7 多播
UDP的时候会用到多播
7.1 IGMP协议
internet group message protol, 网络组管理协议
负责收集和解释一个网络中的组成员信息
IGMP协议应用于路由器
7.2 MOSPF多播路由选择协议
多播开放最短通路优先(Multicast Open Shortest PathFirst,MOSPF)协议是OSPF协议的扩展
使用多播链路状态路由选择来创建源点基准树。
这个协议需要一个新的链路状态更新分组,把主机的单播地址和组地址或主机负责的地址联系起来,这个分组就称为组成员关系LSA。
此外,这个数可以保存在高速缓存中,以便以后有同样源点/组地址对的分组可以使用它。
多播的其他更详细概念见()
8 其他网络层概念8.1 VPN
需要建立专用通道
当专用A试图向专用B通信时,会先加密,再通过加密隧道发到对方内网,具体报文内容不会和互联网直接接触。
8.2 NAT
内外网转换用的一个东西, 公网ip和内网ip互转。
8.3 移动IP
ip从子网A变道子网B。
版权声明
本文仅代表作者观点。
本文系作者授权发表,未经许可,不得转载。
发表评论