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、以及传输层之下的网络层、数据链路层都是“尽最大努力交付”。所以以太网传输并不可靠。

  • 相关阅读:
    Mac php使用gd库出错 Call to undefined function imagettftext()
    centos 使用 locate
    Mac HomeBrew 安装 mysql
    zsh 命令提示符 PROMPT
    新的开始
    Java 面试题分析
    Java NIO Show All Files
    正确使用 Volatile 变量
    面试题整理 2017
    有10阶梯, 每次走1,2 or 3 阶,有多少种方式???
  • 原文地址:https://www.cnblogs.com/HachikoT/p/12680498.html
Copyright © 2011-2022 走看看