本文分享自华为云社区《网络层概念太多搞不清?这里一次性给你做好总结》,作者:breakDawn。
网络层都是 ip 的一堆东西,有些同学可能早就忘记 ip 层里究竟有些什么东西或者协议,也忘记了网络报文走到网络层会发生什么,这对于涉及网络传输开发、组网的同学来说,还是很有必要了解 1 下的。
1.1 分类表示法:
分类表示法已经不常用了。
格式为
1[7 位网络号][24 位主机号]
网络号全 0 指本网络
网络号全 1 用于环回地址(127.0.0.1)
主机号全 0 时指本住机所在网络
全 1 时指本网络所有主机(广播地址)
因此 A 类地址实际可选范围为 1.x.x.x ~ 126.x.x.x
格式为
10[14 位网络号][16 位主机号]
网络号不可全 0,但可以全 1
范围为 128.x.x.x~191.x.x.x
格式为
110[21 位网络号][8 位主机号]
网络号不可全 0
范围为 192.x.x.x~223.x.x.x
格式为
1110[28 位多播地址]
范围为 224.x.x.x~239.x.x.x
因此看到 224 以上的 ip 要注意
格式为 11110[保留]
用于实验用,因此看到 240 以上的认定不是正常节点 ip
1.1.2 分类表示地址的其他说明
1.2 无分类编址 CIDR
Classless Inter-Domain Routing 无类型域间选路
CIDR 有三种编址方式:
对于 CIDR 编址子网号的全 0 和全 1 没有特殊含义,但不可设置成全 0 或者全 1。主机号的全 0 指本网络, 全 1 指广播。(网络号仍然遵从 ABCD 地址的规则)
值 1 的位置指该 ip 中该位置是网络号和子网号区域
值 0 的位置指该 ip 中该位置是主机号区域。
例子:111111100000000…, 那么前面 8 个 1 就是网络号+子网号,后面都代表了主机号
子网掩码可以简化先比网络再比子网的过程。
IP 报文的首部至少有 20 个字节(160 位),首部如下:
上面可以看到 IP 报文的以下限制:
Q: IP 报文里有什么?可以不按顺序或者字节来讲一讲 A:
路由器可分隔广播域,指的是不同网络号的地址,路由器不会转发广播报文
Hub 集线器在同一个冲突域通信无法分割;交换机在同一个广播域通信,可分割冲突域;路由器实现不同广播域间通信,可分隔广播域。
IP 报文在传输中不会被改变,但是链路层报文的 mac 地址会不断变化。
当 2 个主机在不同的子网时,必须要借助路由才能通信
路由表
假设某个路由器在 N1 网络,他的路由表如下:
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 服务器的响应信息,表示初始化失败。
全称 Internet control message protocl,网络控制报文协议他会包装在 IP 的数据报文中,并把首部的协议类型改成 ICMP 那个数字。
首部总共 8 个字节,分别为 2 字节的 ICMP 类型 2 字节的 ICMP 报文代码(类似错误码)4 字节的校验和后面就是数据部分了。
常见的 2 种用途:
源点抑制——发送网络拥塞
终点不可达——无法找到对应 ip 交付地点
时间超时——报文种的 TTL 降为 0,或者分片一直没收集完
参数错误——首部中字段有错路由改变(重定向)—— 主机把数据发给了路由器 R2,但是路由器 R2 发现主机自己本来就可以直达了,于是发给主机该消息,告诉他你要更新路由表了。
差错报告有以下其他特点:
全称 Dynamic Host Configuration Protocol, 动态主机配置协议。当某个局域网内新增了一台主机,这个主机的 ip 是怎么生成的呢?这就会用到 DHCP 协议。主机所在网内会有一台 DCHP 服务器。当新主机加入时,发生如下之事:
有以下几个注意点:
DCHP 可以认为是基于 UDP 的应用层协议,但本质是为了寻求新主机的动态 ip 地址
可以理解为 在一个复杂的拓扑图下, 怎么选择最优的一个路由做目的地址的下一跳。有 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:收到中毒路由信息的相邻的路由器会发送一个毒性逆转的信息,表示已经收到中毒路由信息。
那么为什么收到中毒路由的路由器为什么要回复一个毒性逆转的信息?
这是因为如果不回复的话,那么发送中毒路由的路由器就会一直以广播的形式发送中毒路由,直到相邻的路由器收到并回复一个毒性逆转的信息。
UDP 的时候会用到多播
7.1 IGMP 协议
internet group message protol, 网络组管理协议负责收集和解释一个网络中的组成员信息 IGMP 协议应用于路由器。
7.2 MOSPF 多播路由选择协议
多播开放最短通路优先(Multicast Open Shortest PathFirst,MOSPF)协议是 OSPF 协议的扩展使用多播链路状态路由选择来创建源点基准树。这个协议需要一个新的链路状态更新分组,把主机的单播地址和组地址或主机负责的地址联系起来,这个分组就称为组成员关系 LSA。此外,这个数可以保存在高速缓存中,以便以后有同样源点/组地址对的分组可以使用它。
8.1 VPN
需要建立专用通道当专用 A 试图向专用 B 通信时,会先加密,再通过加密隧道发到对方内网,具体报文内容不会和互联网直接接触。
8.2 NAT
内外网转换用的一个东西, 公网 ip 和内网 ip 互转。
8.3 移动 IP
ip 从子网 A 变道子网 B。在本网时,按 TCP 通信要漫游到外网时, 注册一个转交地址本地代理接收地址,开启隧道数据发送到外网在外网时,使用代理 ip 发送数据回到本地时,会注册并转交之前的地址
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://huaweicloud.blog.csdn.net/article/details/123816303
内容来源于网络,如有侵权,请联系作者删除!