【TCP/IP】链路层的简单认识

本文是参考【TCP/IP详解卷一】的学习知识记录

本文是该系列文章的第三篇,鉴于我对自己的前端学习规划,会选择性地重点学习相对重要地部分,因此这篇文章只是对链路层的简单认识,所以相对来说会比较抽象和浅显

一、链路层的作用

在本系列文章的第一篇中介绍OSI模型时,我们用一个抽象的例子介绍了链路层的作用,其起到的是介质访问的作用。而在TCP/IP协议中,链路层是用于IP的发送和数据接收的。

TCP/IP支持多种不同的链路层,它依赖于使用的网络硬件类型,例如有线网络中的以太网,无线网络中的Wi-Fi。本文重点地就介绍一下以太网的相关知识

二、以太网

以太网是一种计算机局域网技术,是由DEC、Intel公司和Xerox公司在1980年首次发布并在1982年加以修订的,后来IEEE组织的IEEE 802.3标准制定了以太网的技术标准

其最初期的网络的结构为总线型结构如下图所示:

在这里插入图片描述
多个站点都被连接到同一个以太网段上,该网段在空闲时接收某站点发送的信号,若某个时刻,多个站点同时发送信号时就会发生冲突(碰撞),因此以太网在各个站点接口处实现了一种算法使得每个站点发送信号的时间错开,这种方式叫做CSMA/CD(冲突检测的载波侦听多路访问),也叫做MAC(介质访问控制协议)

后来随着以太网的逐渐发展,其速度从最初的10Mb/s变成了最快高达100Gb/s,同样的原来的结构就变得不再适用了,后来就形成了一种叫做星形拓扑结构的网络结构,如下图所示

在这里插入图片描述
这种结构以交换机为中心,用单独的线路使中心与其它各站点相连,采用了集中式管理的方式,此时的以太网不需要再考虑冲突的现象,即各站点信号互不影响,交换机会对每个站点发出的信号进行识别处理。

三、环回

环回一般使用来检测TCP/IP栈、软件是否能正常工作的,其是使用一个虚拟的环回网络接口来实现的,并且在IP地址中有特定分配给它的IP地址,称为环回地址,例如IPv4中 127 开头的IP地址都是环回地址;IPv6中的环回地址为 ::1,像这类地址我们分配给它一个名字 localhost

当我们发送一个数据报给一个环回地址时,在传输层检测到另一端是一个环回地址时,就会在数据报准备离开网络层前往传输层时将其传回给网络层协议栈。因此环回接口发送的IP数据报不会出现在任何网络中

举个例子来解释一下环回的过程,假设我们住在北京xx街道xx号,写了一封信,上面填写的邮寄地址就是北京xx街道xx号,然后我们把它投递给邮局寄出去。当邮局拿到以后,按照正常的流程,进行封装分类,但是当准备装车发走时,看到这个邮寄地址是北京xx街道xx号,然后它就没有被装车发走,最终寄回到了我们自己的手里。

这个过程看着似乎一点意义也没有,那么它能证明什么呢?其实它能证明的就是咱们北京当地的邮局的工作是正常的,所以如果别人在外省寄给你一封信,但你却没收到,那么我们能排除一定不是在北京当地邮局出的问题。这就是所谓的环回的作用

四、MTU和路径MTU

大多数的串行链路的网络都有设置有效载荷大小,该值被称为MTU(最大传输单元),例如以太网的有效载荷的字节数通常被限制为1500。如果我们发送的数据报比链路层上的MTU要大,那么该数据报就会被分片,分片后的每个部分都不大于MTU

如图,一台服务器向一个主机发送一个字节数为1500数据报,要经过两个路由,这两个路由器设置的MTU分别为1000、800

在这里插入图片描述

服务器向主机发送了一个大小为1500字节的数据,在经过第一个路由器时,因为大小超过了其 MTU,所以被分片成大小为1000和500的两个数据;然后再经过第二个路由器时,因为1000的数据大于其MTU,因此再一次被分片成大小为800和200的两个数据,最终准备发往主机时,中途被分片的数据进行重组

若我们想让数据在传输的过程中不被分片,那么就要使发送的数据大小小于传输路线中最小的MTU,该MTU称为路径MTU

补充: 从服务器到主机的MTU可能与主机到服务器的MTU不相同

五、结束语

第三章是对链路层的一个简单认识,其实知识并非这么点,但我认为其它知识对我学习前端用处并没有那么大,如果想要深入链路层的小伙伴可以去看一下这本书

欢迎关注公众号:前端印象 , 不定时更新前端面试题,与我一起学习前端,早日斩获大厂Offer

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页