• 【计网】(四)物理层、数据链路层


    本篇文章接着介绍四层协议中的物理层和数据链路层。出发……

    一、物理层

    物理层(或称物理层,Physical Layer)是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据可在各种物理媒体上传输。它定义了接口标准、线缆标准、传输速率、传输方式等。

    ✅数字信号、模拟信号

    数字信号(Digital Signal):1、它是离散的信号,不适合长距离传输。2、它的抗干扰能力强,受到干扰后,波形失真是可以修复的。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EEwkb0di-1659533930591)(image/image-20220803170604183.png)]

    模拟信号(Analog Signal):1、它是连续的信号,适合长距离传输;2、它的抗干扰能力差,受到干扰时波形变形后很难修复。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5JVwVZcy-1659533930592)(image/image-20220803170802335.png)]

    ✅数据通信模型

    数据通信的类型分为两种:局域网和广域网的情况。

    • 局域网通信模型。运用在小型网络中,比如教室、办公室等。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jyNGPnwe-1659533930593)(image/image-20220803171052803.png)]

      补充:网线(双绞线)的长度不能超过100米,超过之后信号会有所衰减。

    • 广域网通信模型。在很久以前,家里上网时,牵的网线是搭在电话线上的,现在搭在电话线上的应该很少见了,这种情况用的也叫调制解调器。这种猫之间传输的是模拟信号; 而随着科技的进步,现在基本上都是光纤入户了,光纤牵到家里就要使用到光猫(光电转换器),光猫之间传输的是光信号

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4HwgpMX8-1659533930594)(image/image-20220803171839778.png)]

    ✅信道(单工、半双工、全双工)

    信道:信息传输的通道,一条传输介质上可以有很多条信道。比如网线。

    • 单工通信。指的是信号只能往一个方向发送,任何时候都不能改变信号的传输方向。常见的是无线电广播、有线电视广播。
    • 半双工通信。信号可以在一个信道上双向传输,但是必须是交替进行的,也就是说同一时刻,只能有一端发送,另一端接收。例如对讲机。
    • 全双工通信。信号可以随时在一个信道上双向传输,也就是说一端可以同时做到发送和接收信号。例如手机打电话时,可以听说同时进行。

    二、数据链路层

    链路:指的是从1个节点到相邻节点的一段物理线路(有线或无线),中间没有其他交换节点。如下图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GmTibGbE-1659533930594)(image/image-20220803201404966.png)]

    数据链路:指的是在一条链路上传输数据时,需要有对应的通信协议来控制数据的传输。而不同类型的数据链路,所用的通信协议可能也是不同的。比如:1、广播信道:CSMA/CD协议。运用在同轴电缆、集线器等组成的网络。2、点对点信道:PPP协议。运用在路由器与路由器之间的信道。

    ✅数据链路层的特征一:封装成帧

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PwdIwKw9-1659533930595)(image/image-20220803202528170.png)]

    如上图,一个数据帧的大致结构就是这样。

    • 帧的数据部分:是由上一层网络层传递下来的IP数据包,而这个数据包在帧这一层,是有一定的大小的,即上图中的MTU(Maximum Transfer Unit),也称为最大传输单元。 而在每一种数据链路层协议中,规定的这个MTU的上限可能是不同的。比如以太网帧规定的MTU上限是1500字节

    ✅数据链路层的特征二:透明传输

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7sP48Enz-1659533930596)(image/image-20220803203410096.png)]

    • SOH(Start Of Header):称为帧开始符。
    • EOT(End Of Transmission):称为帧结束符。

    而使用上述两个开始符和结束符,可能会存在一定的问题。就如上图所示,假设由网络层传递下来的数据部分里面就含有EOT,则接收端在接收数据的时候,可能就会出现上图所示的情况,导致误认为有一部分无效帧,从而被丢弃。

    这种情况,在日常开发中也很常见,比如Windows环境下的路径,即可以用"/“,也可以用”\",后者就容易使其变成转义字符,所以就需要写两个\的。

    在这里也是一样的,在数据部分的EOT,使其转义即可。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CDzZuism-1659533930598)(image/image-20220803204250626.png)]

    ✅数据链路层的特征三:差错校验

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OMO8G2vw-1659533930599)(image/image-20220803204758343.png)]

    FCS:是帧尾的一部分,它是根据帧的数据部分+数据链路层首部计算出来的。数据链路层首部是帧头的一部分。

    接收端在接收到数据后会计算出FCS,并进行比较,如果发现不一致,网卡就会把这条信息丢弃,这种情况下,抓包工具是抓不到的。

    在数据经过不同的数据链路层时,对应的层会把之前的帧开始和帧结束符替换为自己的协议帧。

    ✅CSMA/CD 协议

    CSMA/CD(Carrier Sense Multiple Access with Collision Detectio):载波侦听多路访问/冲突检测。运用在同轴电缆、集线器等网络上,上文提及过。

    而使用了CSMA/CS 的网络称为以太网,它传输的是以太网帧。以太网帧的格式有两种:

    • Ethernet V2标准
    • IEEE的802.3标准

    当然,使用最多的就是Ethernet V2标准。用交换机组建的网络,已经是支持全双工通信,不需要再使用CSMA/CD,但它传输的帧依然是以太网帧。

    为了能够检测到正在发送的帧是否产生了冲突,所以以太网的帧至少是需要64字节的。

    ✅Ethernet V2帧的格式、Ethernet V2标准

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YrFnlo8S-1659533930599)(image/image-20220803210849588.png)]

    如上图:

    首部:由目标MAC地址+源MAC地址+网络类型(IPv4、IPv6)。总共是14个字节。

    以太网帧是由首部+数据部分+FCS组成,至少是64字节。而FCS需要占用4个字节,所以数据部分最少就需要46字节(64 - 14 - 4)。

    综上,以太网帧的数据部分长度是46 — 1500字节;整个以太网帧的长度是64 — 1518字节。

    当数据部分不足46字节时,也就是说整个以太网帧的长度不足64字节时。数据链路层会在数据的后面补充一些字节进行填充,接收端拿到数据后,会自动去除多余的部分。

    ✅PPP协议 (Point to Point Protocol)

    PPP协议:运用在路由器与路由器之间的信道上。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bPSRRmaz-1659533930600)(image/image-20220803212411304.png)]

    • Frame(F): PPP协议是有帧开始和结束符的,值是0x7E。

    • Address(A): 图中的值是0xFF,形同虚设,点到点信道不需要源MAC、目标MAC地址

    • Control©:图中的值是0x03,目前没有什么作用

    • Protocol(协议): 内部用到的协议类型(PPP协议的子分支协议)

      虽然PPP帧和以太网帧的协议不一样,但是网络层的数据是一样的,仅仅是帧的首部和尾部发生了变化。

    切记:路由器和路由器直连时是PPP帧,如果在两个路由器之间加一个交换机,就不是PPP帧了,而是以太网帧。
    因为路由器之间是点对点,不需要知道对方的MAC地址,但是以太网帧是广播信道,每一台设备必须确认自己是否是接收方。

    PPP帧的字节填充

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pNq6JSr4-1659533930601)(image/image-20220803213251958.png)]

    0x7E -> 0x7D5E。 0x7D -> 0x7D5D。

  • 相关阅读:
    基于J2EE的高校毕业生就业信息管理系统
    基于springboot的ShardingSphere5.2.1的分库分表的解决方案之mysql主从的配置(五)
    Codeforces Round #818 (Div. 2)
    E - Stoned Game
    SOA中间件DDS(数据分发服务-Data Distribution Service)
    洛谷 P7018 [CERC2013] Bus
    js复习基础
    2023-10-7 看C++八股的一些困惑
    tomcat
    PCL Super4PCS算法实现点云粗配准(版本二)
  • 原文地址:https://blog.csdn.net/x0919/article/details/126149504