Bootstrap

计算机网络协议(二)——从二层到三层

这个专栏的计算机网络协议,我是在极客时间上学习 已经有三万多人购买的刘超老师趣谈网络协议专栏,讲的特别好,像看小说一样学习到了平时很枯燥的知识点,计算机网络的书籍太枯燥,感兴趣的同学可以去付费购买,绝对物超所值,本文就是对自己学习专栏的总结,评论区可以留下你的问题,咱们一起讨论!

我在CSDN写博客的目的真的不是为了写而写,写博客的意义一来是方便自己复习,二来是也是想分享知识。我并不会说侵犯 刘超 老师的版权,我也不是照抄,作者的文章内容很精彩,我是记录自己想学的点,当作一个笔记方便自己复习。大家可能看到这篇文 也会去购买专栏学习,或者看到觉得有一点点用就可以啦!


概述

上一篇文章中对通信网络协议做了一个综述,这一篇开始底层网络知识详解:从二层到三层 分为以下五小节去介绍:

  1. 从物理层到MAC层;
  2. 交换机与VLAN;
  3. ICMP和ping;
  4. 网关;
  5. 路由协议;

一、从物理层到MAC层


1.1 第一层(物理层)

电脑连接电脑,除了网线交叉,还需要配置这两台电脑的IP地址、子网掩码和默认网关
IP层封装了MAC层才能放入物理层,两台电脑可以通过网线构成一个局域网,LAN
多台电脑可以通过Hub集线器进行连接。

1.2 第二层(数据链路层)

Hub采取的是广播的模式,无法确定接收者,数据发送混乱没有先后顺序、发送出错怎么办?

MAC层就是要解决这些问题,MAC全称是Medium Access Control(媒体访问控制),其实就是控制数据在媒体上的发送;

多路访问解决数据发送混乱:

  • 信道划分,例如分为多车道,每个车一个道;
  • 轮流协议,单双号出行;
  • 随机接入协议,错峰出行;

为了解决了媒体接入控制的问题,就要考虑:发给谁,谁接收?这里用到一个物理地址,叫作链路层地址。但是常用于解决流媒体接入控制问题,所以常被称为MAC地址

第二层的网络包的格式如下图所示,首先是包含目标MAC地址和源MAC地址类型是IP数据包,IP里面封装了TCP、UDP,以及HTTP;数据包在链路上广播,MAC网卡通过目标MAC地址接收数据包,打开IP包,发现IP地址也是自己的,再打开TCP包,发现端口是自己,也就是80,而nginx就是监听80端口;

于是将请求提交给nginx,nginx返回一个网页。然后将网页需要发回请求的机器。然后层层封装,最后到MAC层。因为来的时候有源MAC地址,返回的时候,源MAC就变成了目标MAC,再返给请求的机器。

第二层的后面是CRC,就是循环冗余检测,通过XOR异或的算法,来计算整个包在传输过程中是否发生了错误。
MAC数据
在一个局域网中如果已知IP地址,求MAC地址,可以采用ARP协议;广播一个IP包,谁是这个IP谁来回答,回答的报文如下,机器会在本地进行ARP缓存来避免每次都用ARP协议,随着机器的上下线,缓存也会失效。
回答报文
交换机是一个二层设备,假设一个数据包要从MAC1发送到MAC2,但是交换机不知道在MAC2电脑的哪个口,这个时候会将包发送给所有的口,找到MAC2电脑的接口之后,通过转发表来记录下对应的MAC地址,保证下次准确转发。

当机器的IP地址、端口发生改变,转发表中的信息也会发生改变。

总结:
第一,MAC地址是用来解决多路访问的堵车问题;
第二,ARP是通过吼的方式来寻找目标MAC地址,吼完以后,记住一段时间,叫作缓存;
第三,交换机是由MAC地址学习能力的,学完了就知道谁在哪儿了,不用广播了


二、交换机与VLAN

上文中讲了交换机,假如公司越来越大,交换机数目肯定越来越多。交换机之间连接起来,就形成复杂的拓扑结构。这么多网线,绕过来绕过去,不可避免地会出现一些意料不到的情况,其中常见的问题就是环路问题,如下图所示:

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;