专栏首页前端印象【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不相同

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 原始 socket 编程

    1.原始 socket 可以和内核一样直接对所有层进行操作(除了物理层)。可以更改 mac 更改 ip 更改端口。so dos 攻击就可以通过原始 socket...

    战神伽罗
  • TCP/IP 基础知识总结

    要说我们接触计算机网络最多的协议,那势必离不开 TCP/IP 协议了,TCP/IP 协议同时也是互联网中最为著名的协议,下面我们就来一起聊一下 TCP/IP 协...

    cxuan
  • TCP/IP协议族

    物理层(RS-232、V.35)和 数据链路层(HDLC、X.25)涉及到在通信信道上传输的原始比特流,它实现传输数据所需要的机械、电气、功能性及过程等手段,提...

    mcxfate
  • 太厉害了,终于有人能把TCP/IP 协议讲的明明白白了

    不难看出,TCP/IP 与 OSI 在分层模块上稍有区别。OSI 参考模型注重“通信协议必要的功能是什么”,而 TCP/IP 则更强调“在计算机上实现协议应该开...

    Java旅途
  • 网络编程 | TCP/IP基础知识

    在2017年10月深圳 Cocos 沙龙上,有幸结识了社区中大名顶顶的Colin,Shawn在论坛上第一次看到Colin的团队用CocosCreator制作的《...

    张晓衡
  • TCP/IP协议学习笔记

    计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 T...

    mukekeheart
  • 计算机网络基础回顾

    对于程序员来说,计算机网络的知识是很重要也很基础的。尤其是做web开发就要对http或者https很熟。有的时候涉及到域名,还会碰到跨域问题。这些其实都是计算...

    用户1154259
  • 路由协议

    OSPF是基于链路状态的自治系统内部路由协议,链路状态路由协议使用dijkstra的最短路径优先算法计算和选择路由。这类路由协议关心网络中链路和接口的状态(UP...

    week
  • 《图解TCP/IP》读书笔记

      这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。   书中讲解了网络基础知识、TCP/IP基础知...

    Edison Zhou
  • TCP/IP超详细总结

    在计算机网络与信息通信领域里,人们经常提及“协议”一词。互联网中常用的具有代表性的协议有IP、TCP、HTTP等。而LAN(局域网)中常用的协议有IPX/SPX...

    说故事的五公子
  • 大二逃课总结的1.2w字的计算机网络知识!扫盲!

    本文是我在大二学习计算机网络期间整理, 大部分内容都来自于谢希仁老师的《计算机网络》这本书。为了内容更容易理解,我对最初整理的内容简单进行了一波重构,并配上了一...

    Guide哥
  • Android开发必须掌握的网络知识

    最近从朋友同行了解到,目前面试都会问各种相关的知识,从集合到数据机构, 从tcp到UDP,从native到js, 从优化到架构,从安全到Linux ,没有面试官...

    开发者技术前线
  • 「多图警告」重学 TCP/IP 协议

    最近刚看完电影 「无敌破坏王2:大闹互联网」,觉得里面有些动画蛮有意思的,于是想起前不久看的《图解HTTP》和 TCP/IP相关的文章。嗯,是时候展示真正的技术...

    前端劝退师
  • 「多图警告」重学 TCP/IP 协议

    最近刚看完电影 「无敌破坏王2:大闹互联网」,觉得里面有些动画蛮有意思的,于是想起前不久看的《图解HTTP》和 TCP/IP相关的文章。嗯,是时候展示真正的技术...

    胡哥有话说
  • 搞定计算机网络面试,看这篇就够了

    OSI的七层体系结构概念清楚,理论也很完整,但是它比较复杂而且不实用。在这里顺带提一下之前一直被一些大公司甚至一些国家政府支持的OSI失败的原因:

    用户2164320
  • TCP、UDP、IP 协议分析

    互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了改善这种缺点,大牛弄...

    李海彬
  • 一些不可不知的计算机网络基础

    其中,OSI的七层协议体系结构理论虽然完整,但它既复杂又不实用。广泛应用的是TCP/IP四层体系结构。

    morixinguan
  • 摸清网络的第一步!

    之前写了那么多网络的文章,竟然发现对「网络协议分层」做详细介绍,这次就把这一块补上。

    小林coding
  • TCP / IP模型:什么是TCP IP堆栈?协议层,优点

    TCP / IP可帮助您确定特定计算机应如何连接到Internet以及如何在它们之间传输数据。当多个计算机网络连接在一起时,它可以帮助您创建虚拟网络。

    用户7466307

扫码关注云+社区

领取腾讯云代金券