计网Lesson9 - 链路协议和网络概述



数据链路层协议

Ethernet V2标准



Ethernet V2帧格式

  • 以太网帧格式说明:
    • 6 6 6 字节目标地址 + 6 6 6 字节源地址 + 2 2 2 字节类型(数据递交给那一层的标记)+ 最少 46 46 46 字节的数据 + 4 4 4 字节 32 32 32 位的 F C S FCS FCS 校验码。
    • 首部:源 MAC + 目标 MAC + 网络类型
  • 抓包软件抓不到 F C S FCS FCS
    • 因为能抓到的都是网卡已经确定数据无误的包,随后链路层就将 F C S FCS FCS 去除了,所以说我们能看到的包的最小字节数是 60 60 60 字节。
  • 物理层的以太网帧采用了曼彻斯特编码,在 MAC 帧前面加上 8 8 8 字节的跳变编码,作为信息的开始。

Ethernet V2帧长度标准

  • 当数据长度小于 46 46 46 字节时:
    • 链路层会对数据末尾补 0 0 0
    • 接收端会把末尾的 0 0 0 删去。
  • 长度总结:
    • 以太网帧的数据长度: 46 46 46 ~ 1500 1500 1500 字节。
    • 以太网帧的数据长度: 64 64 64 ~ 1518 1518 1518 字节。

以太网帧 MAC 帧协议

  • 接收方的无效 MAC:
    • 长度不在 64 64 64 ~ 1518 1518 1518 字节之间的。
    • MAC 不是整数字节。
    • F C S FCS FCS 检测有误。
  • 接收方接到有误的 MAC 时,将其简单丢弃,以太网的数据链路层没有重传机制。
    • 但是在更高层的协议中,如 T C P TCP TCP 中,会有错误检测与重传机制。
  • 以太网与 T C P TCP TCP 的错误检测机制的区别:
    • 以太网(Ethernet)和TCP/IP协议都包含错误检测机制,但它们在不同的网络层次上工作,并且各自解决了不同的问题。
    • 以太网是一种数据链路层协议,它使用MAC地址来标识网络中的设备。每个以太网帧的尾部都有一个称为FCS(帧校验序列)的字段,用于检测帧中的错误。如果接收方在检查FCS时发现帧中有错误,那么它会丢弃这个帧。这种错误检测机制主要用于检测数据在物理层传输过程中可能出现的错误,例如由于电磁干扰、信号衰减等原因导致的比特错误。
    • TCP/IP协议则在传输层工作,它提供了端到端的可靠数据传输。TCP协议通过序列号和确认机制,以及重传丢失的数据段,来确保数据在网络中的可靠传输。这种错误检测和恢复机制主要用于处理网络中可能出现的问题,例如数据包的丢失、延迟、乱序等。

PPP 协议

PPP 概述

因特网用户指的是:边缘以太网与中央骨干路由之间的链接。


PPP 帧

  • 由于 P P P PPP PPP 是点对点传输,所以不需要源地址与目标地址的记录。


网络层

网络层的设计选择

  • 网络层的主要任务:
    • 将分组从源主机经过多个网络和多条链路送到目标主机
    • 这个任务可以拆分成两个:分组转发路由选择

网络层向上层提供的两种服务:

  • 面向连接的虚电路服务:
    • 通信双方按照已经建立好的虚电路发送分组。
      • 规定一条线路,双方的数据只能由这条线路来传输。
      • 所以说发送的分组不需要顺序标志,全部按顺序发过去即可。
    • 核心思想:可靠通信应由网络层自身来保证
      • 当传输出现问题时(丢包,误码等),路由器就会立即停止发送,等待源主机将正确的包发来时才继续按顺序发;
      • 这样导致路由器速度变慢、缓存更多数据、复用率不高等问题。
      • 但是这样也有优点:由于所有的数据包都沿着同一条路径传输,因此可以保证数据包的顺序,也可以更好地支持实时通信等应用。
    • 虚电路的建立:
      • 虚电路的建立通常是按需分配的,也就是说,只有当有数据需要传输时,才会建立虚电路。
      • 虽然虚电路在逻辑上是专用的,但在物理上并不一定是专用的。也就是说,虽然数据包会沿着同一条虚电路进行传输,但这并不意味着其他的数据包不能使用相同的物理链路。实际上,多个虚电路可以共享同一条物理链路,这是通过多路复用技术实现的。
  • 无连接的数据报服务:
    • 核心思想:可靠通信应由用户主机来保证
    • 不需要建立网络层连接
    • 每个分组可以走不同的路径,因此每个分组都必须携带目的主机的完整地址以及包的顺序标志。
    • 通信结束后没有需要释放的连接。
      • 重复:当一条线路很慢,目标主机以为没有收到包,于是发送请求重发一次,然后源主机重发了这个包,结果目标主机收到重复的包。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-14 19:16:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-14 19:16:06       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-14 19:16:06       82 阅读
  4. Python语言-面向对象

    2023-12-14 19:16:06       91 阅读

热门阅读

  1. hive客户机执行sql脚本无法显示表头

    2023-12-14 19:16:06       57 阅读
  2. 客户端注册账号-服务器-存入数据库..

    2023-12-14 19:16:06       43 阅读
  3. 【算法】【动规】单词拆分

    2023-12-14 19:16:06       60 阅读
  4. RESTful API

    2023-12-14 19:16:06       58 阅读
  5. 线程上下文设计模式

    2023-12-14 19:16:06       54 阅读
  6. Shiro框架权限控制

    2023-12-14 19:16:06       56 阅读
  7. 在ubuntu上rmp打包:准备工作

    2023-12-14 19:16:06       63 阅读
  8. spring事务(3)基于XML的声明式事务

    2023-12-14 19:16:06       60 阅读
  9. 使用opencv将Mat图像resize成检测输入的letterbox类型

    2023-12-14 19:16:06       48 阅读
  10. 2312llvm,编译X86的clang与llvm

    2023-12-14 19:16:06       64 阅读
  11. 云原生之深入解析如何使用Dockerfile定制镜像

    2023-12-14 19:16:06       41 阅读
  12. 【vue】element el-table怎么实现跨页勾选

    2023-12-14 19:16:06       61 阅读
  13. linux中网络解析和网络配置

    2023-12-14 19:16:06       59 阅读
  14. 手撕分布式缓存---HTTP Server搭建

    2023-12-14 19:16:06       65 阅读