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传输包,例如⼀些⼤公司的⽹络;
发布评论