zoukankan      html  css  js  c++  java
  • 以太网复习

    以太帧格式


    我们经常说的以太网帧长度是从图中 Destination MAC Address开始,FCS结束。标准以太网帧长度范围为([64,1518]),除去目的MAC地址6字节,源MAC地址6字节,以太网协议2字节,校验码4字节,有效载荷payload的长度范围为$[46,1500]。而这个有效载荷的最大值就被叫做MTU(Maximum Transmission Unit)。

    • Preamble+SFD:只是用于帧同步,所以不会当成帧来处理。
    • EtherType:以太网协议,网卡用来分辨封装的是什么上层协议,然后再通知不同的协议模块来取走数据。
    • Payload:这个允许负荷的最大长度对应的就是负荷的最大传输单元。
    • FCS:Frame Check Sequence,帧校验码,而CRC是循环冗余校验算法,FCS可以由CRC算法生成,也可以由其他算法生成。

    网卡怎么知道以太帧的长度

    在ethernet II中,没有记录载荷的长度,那网卡是怎么知道具体的帧长的呢?
    其实这是由物理层完成的工作,以太网数据帧在物理链路上发送时,是按4B5B编码的,在发送完一个以太帧之后会添加上4B5B编码的ESD字段表示已发送完毕,或者以一个特殊宽脉冲SOI来表示链路空闲。

    以太帧长度为什么是[64, 1518]

    最早的以太网工作方式:载波多路复用/冲突检测CSMA/CD,因为网络是共享的,即任何一个节点发送数据之前,先要侦听线路上是否有数据在传输,如果有,需要等待,如果线路可用,才可以发送。为了检测到极端情况的冲突碰撞,以太帧最短为64字节。
    同时为了避免大的以太帧占据太多时间,并且大包出现数据损坏的概率也会大一些,所以综合考虑,以太帧最长为1518字节。
    实际网络中,以太帧的长度可能会超过1518这一限制,这是由于后续的一些协议,比如在802.1Q中,又定义了以太帧中可选的QTag,位于SMAC和EtherType之间,占4个字节;比如jumbo frame中最高支持9K的大小。

    以太网传输可靠性

    在tcp/ip协议栈中,除了传输层的tcp协议,传输层的udp、以及传输层之下的网络层、数据链路层都是“尽最大努力交付”。所以以太网传输并不可靠。

  • 相关阅读:
    扩展知识
    day61——多表操作(增、删除、改、基于对象的跨表查询)
    day60——单表操作补充(批量插入、查询、表结构)
    day59——orm单表操作
    day58——模板继承、组件、自定义标签和过滤器、inclusion_tag、静态文件配置、url别名和反向解析、url命名空间
    day57——视图、模板渲染
    WARNING: Ignoring invalid distribution -ip
    Python- 【python无法更新pip】提示python.exe: No module named pip
    Anaconda Prompt 切换路径不能进入D盘
    Failed calling sys.__interactivehook__ 错误的解决
  • 原文地址:https://www.cnblogs.com/HachikoT/p/12680498.html
Copyright © 2011-2022 走看看