2023年11月27日发(作者:)

计算机⽹络协议(⼆)——从⼆层到三层

底层⽹络知识详解:从⼆层到三层

这个专栏的计算机⽹络协议,我是在极客时间上学习 已经有三万多⼈购买的刘超⽼师的专栏,讲的特别好,像看⼩说⼀样学习到了平时很

枯燥的知识点,计算机⽹络的书籍太枯燥,感兴趣的同学可以去付费购买,绝对物超所值,本⽂就是对⾃⼰学习专栏的总结,评论区可以留下

你的问题,咱们⼀起讨论!

我在CSDN写博客的⽬的真的不是为了写⽽写,写博客的意义⼀来是⽅便⾃⼰复习,⼆来是也是想分享知识。我并不会说侵犯 刘超 ⽼师的

版权,我也不是照抄,作者的⽂章内容很精彩,我是记录⾃⼰想学的点,当作⼀个笔记⽅便⾃⼰复习。⼤家可能看到这篇⽂ 也会去购买专

栏学习,或者看到觉得有⼀点点⽤就可以啦!

概述

上⼀篇⽂章中对通信⽹络协议做了⼀个综述,这⼀篇开始底层⽹络知识详解:从⼆层到三层 分为以下五⼩节去介绍:

1. 从物理层到MAC层;

2. 交换机与VLAN;

3. ICMP和ping;

4. ⽹关;

于是将请求提交给nginx,nginx返回⼀个⽹页。然后将⽹页需要发回请求的机器。然后层层封装,最后到MAC层。因为来的时候有源MAC

地址,返回的时候,源MAC就变成了⽬标MAC,再返给请求的机器。

上⽂中讲了交换机,假如公司越来越⼤,交换机数⽬肯定越来越多。交换机之间连接起来,就形成复杂的拓扑结构。这么多⽹线,绕过来绕

过去,不可避免地会出现⼀些意料不到的情况,其中常见的问题就是环路问题,如下图所⽰:

这就需要采⽤使⽤STP协议,解决环路问题:

在数据结构中,有⼀个⽅法叫作最⼩⽣成树。有环的我们常称为图。将图中的环破了,就⽣成了树。在计算机⽹络中,⽣成树的算法叫作

STP,全称**Spanning Tree Protocol。**有环路的图变成没有环路的树,从⽽解决环路问题。这⾥我就不细细描述了,感兴趣的同学可以

当⽹络不通,你连不上另⼀台机器的时候,⼀般都会ping⼀下,ping是基于ICMP协议⼯作的;

3.1 ICMP协议的格式

ICMP全称Internet Control Message Protocol,就是互联⽹控制报⽂协议。

ICMP是封装在IP包中的,在传输指令的时候,需要源地址和⽬标地址,其格式如下:

ICMP报⽂有很多的类型,不同的类型有不同的代码。最常⽤的类型是主动请求为8,主动请求的应答为0。

⼀起来看⼀下ping的发送和接收过程:

假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,它们都在同⼀个⼦⽹,当你在主机A上运⾏“ping

192.168.1.2”后,源主机⾸先会构建⼀个ICMP请求数据包,数据包中包含类型字段和顺序号;

在进⾏⽹卡配置的时候,除了IP地址,还需要配置⼀个Gateway的东西,这个就是⽹关。

静态路由

如果离开局域⽹,就需要经过⽹关,⽹关是路由器的⼀个⽹⼝;

路由器是⼀个三层设备,⾥⾯有如何找下⼀跳的规则;

经过路由器后MAC头要变,如果IP不变,相当于不换护照的欧洲旅游,如果IP变,相当于换护照的⽞奘西⾏。

五、路由协议

路由器就是⼀台⽹络设备,它有多张⽹卡。当⼀个⼊⼝的⽹络包送到路由器时,它会根据⼀个本地的转发信息库,来决定如何正确地转发流

量。这个转发信息库通常被称为路由表。

路由器会根据路由表去正确的转发信息,路由表中有多条路由规则,需要根据⽬的IP地址来配置路由:

⽬的⽹络:数据包想去哪?

出⼝设备:将包从哪个⼝扔出?

下⼀跳⽹关:下⼀个路由器的地址;

5.1 如何配置策略路由?

真实复杂的⽹络环境中,除了根据⽬的ip地址配置路由之外,还可以根据多个参数来配置路由,就是策略路由,可以配置多个路由表,根据

源ip地址、⼊⼝设备、TOS等选择路由表;

ip rule add from 192.168.1.0/24 table 10

ip rule add from 192.168.2.0/24 table 20

表⽰从192.168.1.10/24这个⽹段来的,使⽤table 10中的路由表,

⽽从192.168.2.0/24⽹段来的,使⽤table20的路由表

在⼀条路由规则中,也可以⾛多条路径,在下⾯的路由规则中:

ip route add default scope global nexthop via 100.100.100.1 weight 1 nexthop via 200.200.200.1 weight 2

家⾥的⽹是私有⽹段,出去的包需要NAT成公⽹的IP地址,因⽽路由器是⼀个NAT路由器;

例如,运营商1给路由器分配的地址是183.134.189.34/32,⽽运营商⽹络⾥⾯的⽹关是183.134.188.1/32。有的是/30的,也就是分

了⼀个特别⼩的⽹段。运营商2给路由器分配的地址是60.190.27.190/30,运营商⽹络⾥⾯的⽹关是60.190.27.189/30。

5.2 动态路由算法

⽹络环境简单的时候,⾃⼰可控,可以采⽤静态路由,⼀旦⽹络结构发⽣变化,就需要动态路由算法;

Stub AS:对外只有⼀个连接。这类AS不会传输其他AS的包。例如,个⼈或者⼩公司的⽹络

Multihomed AS:可能有多个连接到其他的AS,但是⼤多拒绝帮其他的AS传输包,例如⼀些⼤公司的⽹络;