精华内容
下载资源
问答
  • 最近在做以太网通信方向的项目,由于自己是一个在计算机网络方面的小白,在网上查找资料,整理了相关整个...在以太网的帧头和帧尾中有几个用于实现以太网功能的域,每个域也称为字段,有其特定的名称和目的。 ...

         最近在做以太网通信方向的项目,由于自己是一个在计算机网络方面的小白,在网上查找资料,整理了相关整个以太网数据帧格式的传输方式,分析理解了整体的以太网帧格式,对于后期做项目有很大的助益,适合计算机网络通信方面的小白参看。 

         以太网帧格式,即在以太网帧头、帧尾中用于实现以太网功能的域。在以太网的帧头和帧尾中有几个用于实现以太网功能的域,每个域也称为字段,有其特定的名称和目的。

    1、以太网帧的整体格式如下:

                                                                     图1 以太网帧的整体格式

    图1中的两张图均是以太网的整体帧格式,由以太网首部,IP首部,TCP/UDP首部,应用数据,以太网尾部这几部分组成,其中每部分的详细解释如下表所示:

    2、以太网的帧格式如下所示:

     

    3、IP数据报

    4、UDP段帧格式

    5、TCP段帧格式

     

    展开全文
  • 其中,帧头和帧尾包含一些必要控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来数据,比如ip数据包。二、MAC帧字节长度由来① 目标MAC地址、源MAC地址、协议类型、帧校验序列为...

    一、MAC帧结构         

            MAC帧是数据帧的一种。而所谓数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如ip数据包。

    842ef19bfd091f0954b324be8e424cf3.png

    5d012b629e068fda50255f113470a3f8.png

    二、MAC帧字节长度的由来

    ae1ff99251dac4a8c2495ec882ace2bf.png

    ① 目标MAC地址、源MAC地址、协议类型、帧校验序列为固定值

    ②当数据包最小为46字节时,整个帧大小为64字节,有两个原因:

        1)当站点正在发送数据时,发生了冲突,就将未发送的部分丢弃,这样导致了物理线路上的残余帧的LEN可能为0,若MAC的LEN为0是合法的将无法区别;

        2)按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64字节的原因。

    ③当数据包最大为1500字节时,整个帧大小为1518字节,这个是为避免单一主机占用信道时间过长。

    三、问题来啦

    问题1:那我们经常传几十M甚至几个G的文件是怎么传递的?

    ①在应用程序中我们用到的Data的长度最大是取决于底层限制(1472):

        1)在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)—(1500 + 18),其中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500(不包括帧头和帧尾),即MTU(Maximum Transmission Unit)为1500;

        2)在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20 = 1480;

        3)在传输层,对于UDP包的首部要占8字节,所以这的MTU为1480 - 8 = 1472;

    ②当我们UDP包中的数据多于1472时,发送方的IP层需要分片进行传输,而在接收方IP层则需要进行数据报重组。

    问题2:1千兆网络一秒能发多少(N)个最小帧?

    帧于帧之间不是无缝相连,需要间隔,也就是帧间隙,共20字节,包括: 

         1)以太网最小帧间隙  12Byte(IEEE802.3)

         2)数据链路层帧         7 Byte前导字符(用于时钟同步)

         3)帧开始标识            1Byte(标识帧的开始)

    故:

    0f2a750fbba193d7f83a541a5253c00f.png

    四、wireshark 抓包分析mac帧

    e8a21cf696502a74a9d77757f6985b93.png

    第一行是对该数据包的整体介绍,字节大小等描述

    第二行在“详细信息”窗口内的“Ethernet II”项目,即是MAC帧的首部信息。双击改项展开,可见MAC帧首部的  详细分析,对应“解析器”窗口中的16进制数据会反蓝显示。单击某个字段,对应的首部字段均会反蓝显示展开后,有目的物理地址,源物理地址,ip类型等

    第三行internet protocol,是网络层传输的IP数据包,对应了IP数据包的格式

    第四行传输控制协议,里面有本端端口、目的端口、流动索引、TCP字段长度等等。

    第五行是传输安全层协议,是内容类型、版本、长度以及数据包。

    5653abb8e844d45ec39880b6af730fd2.png

    a3a209f7966817b5eb0c0c6e6ea5c07a.png

    那么诸位对文章有哪些指正或者对mac相关有什么讨论呢?欢迎留言

    展开全文
  • 3.1 数据链路层基本概念3.1.1 数据链路层简单模型数据链路层不关心物理层解决问题,只关心帧头帧尾和校验。​3.1.1 数据链路层信道类型->点到点信道:这种信道使用一对一点对点通信方式。->广播信道...

    3.1 数据链路层的基本概念

    3.1.1 数据链路层的简单模型

    数据链路层不关心物理层解决的问题,只关心帧头帧尾和校验。

    dae3bc4aa397d42c688d3c84e6daaac1.png

    3.1.1 数据链路层的信道类型

    ->点到点信道:这种信道使用一对一的点对点通信方式。

    ->广播信道:广播信道上的主机很多,需要专用的共享信道协议来协调主机的数据发送。

    3.1.2 链路与数字链路

    ->链路(link)——是一条点到点的物理线路段,中间没有任何其他的交换节点。一条链路只是一条通路的一个组成部分。

    ->数据链路(data link)——除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。最常用的方法是使用适配器(网卡)来实现这些协议的硬件和软件。一般的适配器都包括了数据链路层和物理层这两层的功能。

    3.1.3 帧

    在网络层,给数据包增加了接收端和发送端的IP地址。在数据链路层里,增加了帧头帧尾,MAC地址和校验值。

    324ca73ae6adb4424682fafc8ee0d492.png

    3.2 数据链路层解决的基本问题

    3.2.1 封装成帧(framing)

    就是在一段数据的前后分别添加帧头和帧尾,构成一个帧,确定帧的界限。

    b0db39c69cd2449ebbf2523db10ea6af.png

    但是,可能会出现以下问题,

    939e402f1e1b6eb7b87c7e1dfd0f94e9.png

    3.2.2 透明传输

    用字节填充法解决透明传输问题。发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个转义字符“ESC”(十六进制数1B)。

    字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在数据送往网络层之前杀出插入的转义字符。

    如果转义字符也出现在数据之中,那么应该在转义字符前插入一个转义字符。当接收端收到连续的两个转义字符时,就删除前面的那一个。

    71d0f92cd4894f6eaae2a4059c8c18da.png

    3.2.3 差错校验

    传输过程中可能会产生bit差错:0变成1,1变成0.

    在一段时间内,传输错误的比特率占所传输比特总数的比率称为误码率BER(bit error rate)。

    误码率和信噪比的关系很大。

    为了保证数据传输的可靠性,在计算机网络传输数据时,必须采用各种差错检验措施。

    ->循环冗余检验CRC:

    除数必须比后面添加的0的位数多一位,可以是任意的二进制数。每一步运算其实是不进位的加法。下图的001就是FCS帧检验序列。接收端计算101001001(也就是原数据加上FCS)除以1101,如果商为0,意味着传输过程没有差错,就接受,否则丢弃。

    ec975571dd0e6731ccd002a9cd5eb805.png

    在数据后面添加的冗余码称为帧检验序列FCS(frame check seqeunce)。CRC不是获得FCS的唯一方法。

    特点:

    不能确定出错的bit的是哪一位;

    可能会出错,但只要经过严格的挑选,并且除数位数足够大,就可以极大减少出错概率;

    CRC只能做到无差错接受(意思是传输过程没有差错,有差错的一律丢弃);

    要做到可靠传输,必须加上确认和重传机制。

    3.3 两种情况下的数据链路层

    3.3.1 使用点对点信道的数据链路层(广域网)

    (1)PPP协议(point to point protocol),是数据链路层协议,例如用户使用拨号上网。

    (2)PPP协议应该满足:

    简单;封装成帧;透明性;多种网络层协议;多种类型链路;差错检验;检测连接状态;最大传送单元;网络层地址协商;数据压缩协商;

    (3)PPP协议不需要满足:

    纠错;流量控制;序号;多点链接;半双工或单工连接。

    (4)PPP协议的组层部分:

    数据链路层协议可以用于异步串行或同步串行介质;

    使用LCP(链路控制协议)建立并维护数据链路连接,可以实现身份验证和欠费管理;

    网络控制协议(NCP)允许在点到点连接上使用多种网络层协议,如下图;

    fd08d50b3bb4ffc57062954c4953eea1.png

    (5)PPP协议帧格式
    标志字段F = 0x7E
    地址字段A = 0xFF,它并不起作用
    控制字段C = 0x03
    PPP协议是面向字节的,所以所有的PPP帧的长度都是整数字节。

    083f995bc632e1238fad3a64754bb1cb.png

    (6)字节填充(类似于透明传输)

    此时,信息部分是以字节为单位的。

    将信息字段中出现的每个0x7E字节转变成为2字节序列(0x7D,0x5E);

    将信息字段中出现的每个0x7D字节转变成为2字节序列(0x7D,0x5D);

    将信息字段中出现的每个ASCII码控制字符(小于0x20字符),在前面加入一个0x7D;

    (7)0比特填充(类似于透明传输)

    此时,信息部分是二进制流。PPP协议在SONET/SDH链路时,是使用同步传输。

    在发送端,只要发现有5个连续的1,则填充一个0,接收端删掉对应的0。

    882f0edf29b3ed8ef81218f1ce05d5cb.png

    (8)PPP协议不使用序号和确认机制的原因

    在数据链路层出现错误的概率不大时,使用较简单的PPP协议较为合理;

    在Internet环境下,PPP的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能保证网络层的传输也是可靠的;

    帧检验序列FCS字段可以保证无差错接受。

    (9)PPP协议的工作状态

    当用户拨号接入ISP(网络运营商)时,陆游去的调制解调器对拨号进行确认,建立物理连接;

    PC机箱路由器发送一些列的LCP(链路控制协议)分组(封装成多个PPP帧);

    这些分组及其响应选择一些PPP参数,和进行网络层配置,NCP(网络控制协议)给新接入的PC机分配一个临时的IP地址,使PC机成为Internet上的一个主机;

    通信完毕后,NCP释放网络层连接,收回原来分配出去的IP地址;

    接着,LCP释放数据链路层连接;

    最后释放的事物理层连接。

    3.3.2 使用广播信道的数据链路层(局域网)

    一般是总线型。

    (1)局域网的拓扑

    a87a5a73247519ce5435e90fcb8821de.png

    (2)共享通信媒体

    静态划分信道(麻烦):

    频分复用;时分复用;波分复用;码分复用;

    动态媒体接入控制(多点接入):

    随机接入(主要是以太网);受控接入,如多点线路探询(polling),轮询(不采用了)。

    (3)认识以太网

    最初的以太网是将许多计算机都连接到一根总线上,当初认为这样连接即简单又可靠,因为总线上没有有源器件。

    总线上每一个主机都能检测到B发送的数据。但是只有D的地址和数据帧首部写入的地址一致,所以只有D接收。其余计算机都能检测到这不是发送给他们的数据帧,所以就丢弃这个数据帧。

    这是一种具有广播特性的总线上实现了一对一通信。这种方式不安全。

    262ed308d0ab465a95a527b8e1ff6493.png

    (4)带冲突检测的载波监听/碰撞检测

    CSMA/CD:

    Carrier Sense Multiple Access with Collision Detection

    多点接入:

    许多计算机以多点接入的方式连接在一根总线上。

    载波监听:

    每一个站在发送数据之前都先要用电子技术检测一下总线时候有其它计算机在发送数据信号,如果有则不发送数据,以免发生碰撞;

    (5)碰撞检测

    碰撞检测就是计算机边发送数据边检测信道上信号电压的大小。

    当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大;

    当一个站检测到信号地哪呀摆动值超过一定的门限值时,就认为总线上至少有两个站在同时发送数据,表明产生了碰撞;

    碰撞就是冲突,碰撞检测也称冲突检测。

    检测到碰撞后:

    在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息;

    每一个正在发送数据的站,一旦发现总线上出现了碰撞,就立即停止发送,避免浪费网络资源,等待一个随机的时间后再次发送。

    (6)传播时延对载波监听的影响

    7c780d863a17851dcffea8d9f3e65089.png

    在2t时间内,可能存在碰撞。

    (7)CSMA/CD的重要特性

    使用CSMA/CD协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工);

    每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能;

    这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。

    (8)争用期

    最先发送数据帧的站,在发送数据帧后至多经过时间2t(2倍的端到端往返时延)就可知道发送的数据帧是否发生了碰撞。

    经过争用期这段时间还没有检测到碰撞,就可以肯定不会发生碰撞;

    以太网的争用期:

    ->以太网的端到端往返时延2t称为争用期,或碰撞窗口,通常取51.2微秒为争用期的长度;如果网线过长,会导致争用期时间的延长,这也是为什么网线一般不超过100m;

    ->对于10Mb/s的以太网,在争用期可以发送512bit,也就是64 byte;

    ->以太网在发送数据的时候,若前64字节没有冲突,后续也不会发生冲突;

    最短有效帧长:

    ->如果发生冲突,一定是前64字节;

    ->由于一旦发生冲突就立刻停止,所以已发送的数据一定小雨64字节;

    ->以太网规定了最短有效帧长为64字节,凡事小雨64字节的帧一定是因为冲突而异常终止的无效帧。

    (9)二进制指数类型退避算法

    发送碰撞的站在停止发送数据后,要推迟一个随机事件才能发送数据。

    确定基本退避时间,一般是争用期2t;

    定义参数k = min(重传次数,10);

    从整数集合{0,1,…,2^k-1}中随机取出一个数,记为r,重传所需的时延就是r倍的基本退避时间;

    当重传达16次时仍不能成功时就丢弃该帧,并向高层报告。

    3.4 以太网

    3.4.1 以太网的两个标准

    DIX Ethernet V2一般是指这个。

    IEEE 802.3 两个标准差别很小。

    以太网 是满足DIX Ethernet V2标准的局域网。

    3.4.2 以太网与数据链路层的2个子层

    为了使数据链路层更好的适应多种局域网标准,802委员会把局域网拆分为:

    ->逻辑链路控制LLC(Logical Link Control)子层;

    ->媒体接入控制MAC(Medium Access Control)子层。

    与接入到传输媒体有关的内容都放在MAC子层上,而LLC子层与传输媒体无关,不管什么协议的局域网对LLC子层都是透明的;

    由于局域网标准一般是DIX Ethernet V2而不是IEEE 802.3,所以802.2标准的LLC子层作用已经不大了,很多厂商适配器没有LLC协议;

    3.4.3 以太网提供的服务

    以太网提供服务是不可靠的交付,即最大努力的交付;

    当接收站收到的有差错的数据帧时就丢弃此帧,其它什么也不做,差错的纠正由高层来处理;

    如果高层发现丢失了一些数据而进行重传,但以太网并不知道这是一个重传的帧,而是当作一个新帧发送。

    3.4.4 以太网的星型拓扑结构

    物理上是星型,逻辑上是总线型。

    为了降低成本,最初由粗的同轴电缆变成细的同轴电缆最后变成无屏蔽双绞线。每个站需要用两对双绞线,分别用于发送和接收;

    在星形的中心增加了一种可靠性高的设备,为集线器(hub)。

    9d838c834803790762034e48f75e123c.png

    3.4.5 集线器的特点

    集线器使用电子器件来模拟实际电缆线的工作,因此整个系统仍然是像一个传统的以太网那样运行。由于集线器使用了大规模集成电路芯片,所以可靠性更高;

    使用集线器逻辑上仍然是一个总线网,各工作站使用的还是CSMA/CD协议,共享逻辑网络上的总线;

    集线器像一个多接口的转发器,工作在物理层。

    05c84e70ac46656001c40c2453e82dc3.png

    3.4.6 10Base-T 基于集线器的以太网标准

    它的通信距离稍短,每个站到集线器的距离不超过100m。

    这种10MB/s的无屏蔽双绞线星形网的出现,能降低成本和提高可靠性。

    10Base-T的出现有很大的意义,类似标准有100Base-FX,10Base-T,100Base-T4.

    3.4.7 信道利用率

    争用期长度为2t;帧长为L bit,数据发送旅为C b/s,帧的发送时间为L/C = T0 秒。

    一个帧从开始发送,经可能发生的碰撞后,将再次重传多次,直到发送成功且信道转为空闲(即再经过t使得信道上没有信号在传播)时为止,是发送一帧所需的平均时间。

    25256a55285abf2b68a54889e92d6103.png

    定义a = t / T0,是单程端到端时延t与帧发送时间T0的比值。a越小,说明碰撞检测越快,信道利用率高。

    当数据率(网速)一定时,以太网的连线长度受到限制,否则t会太长;

    以太网的帧长不能太短,否则T0太小,使a太大。

    3.4.8 信道利用率的最大值

    假设理想状态下,以太网个展发送的数据都不会碰撞,一旦总线空闲就能有站立即发送数据,所以没有争用期;

    发送一帧需要占用总线T0+t,而帧本身需要发送时间为T0,于是理想情况下极限信道利用率Smax = T0 / (T0 + t) = 1 / (1 + a).

    3.5 MAC层

    3.5.1 MAC层的硬件地址(MAC地址)

    硬件地址 = 物理地址 = MAC地址

    MAC地址前3个字节(24位)是厂家分配的地址字段,后3个字节(24位)是厂家自定义,称为扩展标识符;

    一个地址块可以产生2^24个地址,这种48位地址称为MAC-48,通用名为EUI-48,这就是MAC地址;

    MAC地址实际上是每一个站的名字或标识符。

    3.5.2 适配器检查MAC地址

    适配器从网络上每收到一个MAC帧就要用硬件检查MAC帧中的MAC地址:

    ->如果是发往本站的帧就收下,然后进行其它处理;

    ->否则丢弃。

    发往本站的帧包括:

    ->单播帧(unicast)(一对一)

    ->广播帧(broadcast)(一对全体)

    ->多播帧(multicast)(一对多)

    3.5.3 MAC帧的格式

    6 + 6 + 2 + 46 + 4 =64 byte,这就是为什么IP数据报的最短长度为46字节。

    796834c47a4cca5720c348879ee18862.png

    前8个字节的作用是实现比特同步,第一个字段共7个字节,称为前同步码,作用是实现快速MAC帧的比特同步;第二个字段是帧开始定界符,表示后面的信息是MAC帧。

    ce741f9f69f7bcd9616f5737392b1882.png

    3.5.4 无效的MAC帧

    帧的长度不是整数个字节;

    用收到的帧检验序列FCS查出有错误;

    数据字段的长度不在46-1518字节内;

    对于检查出来的无效MAC帧简单的丢弃。

    3.5.5 帧间最小间隔

    为9.6微秒。相当于96bit的发送时间。

    一个站在检测到总线空闲时,还需要等待9.6微秒后才能再次发送数据,这样做是为了使刚刚收到的数据帧的站接收缓存来得及清理,做好接收下一帧的准备。

    3.6 数据帧的抓包分析

    3.7 扩展以太网

    3.7.1 在物理层考虑扩展

    (1)距离的扩展

    主机使用光纤和一对光纤调制解调器连接到集线器。

    a1b66a0d2bd71332a956b5aa41d3b2d1.png

    (2)数量的扩展
    集线器集联:使网络中计算机增加,变成一个大的冲突域,会造成效率降低。

    c3567f34970c83e4db60d232d32adf7c.png

    3.7.2 在数据链路层考虑扩展

    (1)使用网桥
    网桥工作在数据链路层,他根据MAC帧的目的地址对收到的帧进行转发。网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是现检查此帧的目的MAC地址,然后再确定将该帧转发到对应的接口。

    72b2f24a3717304636d3bdb4e1854823.png

    (2)交换机

    随着网桥的接口的增加, 后来网桥和集线器合并了,计算机可以直接和交换机连接,这就是交换机。

    交换机就是网桥和集线器的合并升级版,能全双工,安全通信。

    端口带宽独享;

    安全;

    基于MAC地址转发;

    通过学习构建MAC地址表。

    (3)透明网桥(transparent )

    透明指局域网上的站点不知道所发送的帧将经过几个网桥,因为网桥对于各站点是看不见的。

    透明网桥是一种即插即用的设备,标准是IEEE 802.1D。

    2c0494e180673fb3790362dfa22a0500.png

    透明网桥使用了生成树算法。避免产生转发的帧在网络中不停的转圈。

    4ae79a8ebe199f7ea49cca6fddd0b48c.png

    dbd19ea6d6d0f7a365698b54a211d5fd.png

    3.8 快速以太网(fast ethernet)

    3.8.1 100Base-T以太网

    速率在100Mb/s以上的以太网称为高速以太网。

    在双绞线上传送100Mb/s基带信号的星型拓扑以太网,仍使用IEEE 802.3的CSMA/CD协议。100Base-T以太网被称为快速以太网(fast ethernet)。

    100Base-T以太网的物理层:

    ->100Base-TX:使用2对UTP 5类线或屏蔽双绞线STP。

    ->100Base-FX:使用2对光纤。

    ->100Base-T4:使用4对UTP 3类线或5类线。

    3.8.2 100Base-T以太网的特点

    可以实现全双工通信(注意,如果交换机上某一路连接着集线器(半双工),则这一路不能实现全双工)而无冲突,此时不使用CSMA/CD协议。

    MAC帧格式不变,仍是802.3 标准。

    最短帧长度不变,但是一个网段的最大电缆长度减少到100m。

    帧间间隔从9.6微秒缩小到0.96微秒。

    3.8.3 吉比特Gbit以太网

    允许在1 Gb/s下全双工或半双工工作方式。

    使用802.3标准的帧格式。

    在半双工下使用CSMA/CD协议。

    与10Base-T和100Base-T技术向后兼容。

    当吉比特以太网在全双工方式时,不用载波延伸和分组冲突。

    1000Base-X以太网的物理层(基于光纤通道):

    ->1000Base-SX:SX表示短波长,传输距离上275m或550m。

    ->1000Base-LX:LX表示长波长,传输距离上550m或5000m。

    ->1000Base-CX:

    1000Base-T以太网的物理层(基于双绞线):

    ->使用 4对 5类线UTP。

    fdf16781de561bfd289fd9674f69a7af.png

    3.8.4 10Gbit/s以太网

    MAC帧格式不变,仍是802.3 标准。

    使用光纤而不是铜线。

    只能工作在全双工方式,没有争用问题。

    它的出现使工作范围从局域网扩大到城域网和广域网,实现了端到端的以太网传输,优点是:技术成熟;互操作性好;广域网中使用以太网便宜;统一的帧格式。

    3.8.5 以太网从10Mb/s到10Gb/s的演变说明了

    可拓展性;

    灵活性(多种传输媒体,全/半双工,共享/交换);

    易于安装;

    稳健性好。

    3.8.6 Cisco建网的3层模型

    920c111d98324d4f0dcb284b2e780a22.png
    展开全文
  • 其中,帧头和帧尾包含一些必要控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来数据,比如ip数据包。二、MAC帧字节长度由来① 目标MAC地址、源MAC地址、协议类型、帧校验序列为...

    一、MAC帧结构         

            MAC帧是数据帧的一种。而所谓数据帧,就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如ip数据包。

    de33d29a7e43e377f2a6e9e0933e9370.png

    fc26d3b805d752496286353146618419.png

    二、MAC帧字节长度的由来

    ce7ea5ce279a193cb5ec1575fab93037.png

    ① 目标MAC地址、源MAC地址、协议类型、帧校验序列为固定值

    ②当数据包最小为46字节时,整个帧大小为64字节,有两个原因:

        1)当站点正在发送数据时,发生了冲突,就将未发送的部分丢弃,这样导致了物理线路上的残余帧的LEN可能为0,若MAC的LEN为0是合法的将无法区别;

        2)按照标准,10Mbps以太网采用中继器时,连接的最大长度是2500米,最多经过4个中继器,因此规定对10Mbps以太网一帧的最小发送时间为51.2微秒。这段时间所能传输的数据为512位,因此也称该时间为512位时。这个时间定义为以太网时隙,或冲突时槽。512位=64字节,这就是以太网帧最小64字节的原因。

    ③当数据包最大为1500字节时,整个帧大小为1518字节,这个是为避免单一主机占用信道时间过长。

    三、问题来啦

    问题1:那我们经常传几十M甚至几个G的文件是怎么传递的?

    ①在应用程序中我们用到的Data的长度最大是取决于底层限制(1472):

        1)在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)—(1500 + 18),其中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500(不包括帧头和帧尾),即MTU(Maximum Transmission Unit)为1500;

        2)在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20 = 1480;

        3)在传输层,对于UDP包的首部要占8字节,所以这的MTU为1480 - 8 = 1472;

    ②当我们UDP包中的数据多于1472时,发送方的IP层需要分片进行传输,而在接收方IP层则需要进行数据报重组。

    问题2:1千兆网络一秒能发多少(N)个最小帧?

    帧于帧之间不是无缝相连,需要间隔,也就是帧间隙,共20字节,包括: 

         1)以太网最小帧间隙  12Byte(IEEE802.3)

         2)数据链路层帧         7 Byte前导字符(用于时钟同步)

         3)帧开始标识            1Byte(标识帧的开始)

    故:

    a2758ffcd3eb0747d2a9802d6bf5e88b.png

    四、wireshark 抓包分析mac帧

    160da9f7c330a1556100113b4216c732.png

    第一行是对该数据包的整体介绍,字节大小等描述

    第二行在“详细信息”窗口内的“Ethernet II”项目,即是MAC帧的首部信息。双击改项展开,可见MAC帧首部的  详细分析,对应“解析器”窗口中的16进制数据会反蓝显示。单击某个字段,对应的首部字段均会反蓝显示展开后,有目的物理地址,源物理地址,ip类型等

    第三行internet protocol,是网络层传输的IP数据包,对应了IP数据包的格式

    第四行传输控制协议,里面有本端端口、目的端口、流动索引、TCP字段长度等等。

    第五行是传输安全层协议,是内容类型、版本、长度以及数据包。

    d6ba528652e734ed21059349a9b2a089.png

    fdf73f952dd206614db7d5a525f94f2c.png

    那么诸位对文章有哪些指正或者对mac相关有什么讨论呢?欢迎留言

    展开全文
  • 以太网帧结构概述

    2011-11-29 14:46:06
    以太网帧是OSI参考模型数据链路层封装,网络层数据包被加上帧头和帧尾,构成可由数据链路层识别数据帧。虽然帧头和帧尾所用字节数是固定不变,但根据被封装数据包大小不同,以太网长度也随之变化,...
  • 其中,帧头和帧尾包含一些必要控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来数据,比如ip数据包。 目前,有四种不同格式的以太网帧在使用,它们分别是: Ethernet II即DIX ...
  • 无论是TCP还是UDP, 最终还是封装成了IP包, 我们知道, IP包最大程度为65535个字节, 于是很多初学者会误解, 以为这65536字节IP包数据, 是直接被数据链路层套上帧头和帧尾巴。 比如, 下图就容易让人产生一...
  • 1.遵循标准 Internet802.3 2.网络通信协议 1)TCP/IP 应用层 传输层 网络层 网络接口层 2)SNA 3)OSI 分层 应用层 ...1.应用层数据封装 ...4.带上帧头和帧尾,交给物理层 5.将数据帧变为比特流进行...
  • 自己动手学TCP/IP--以太网帧

    千次阅读 2012-07-19 14:43:43
    数据链路层主要功能 把网络层包封装成帧 对帧校验确认 流量控制 ...(6个字节)+源MAC地址(6个字节)+协议类型(2个字节),帧尾是32位CRC冗余校验。对于两个字 节协议字段,0
  • ——封装数据包

    2011-05-26 08:37:34
    以太网帧结构向第 3 层 PDU 添加帧头和帧尾来封装所发送报文。 以太网帧头和帧尾具有多个信息区域,供以太网协议使用。帧每个区域都称为一个字段。以太网帧有两种样式:IEEE 802.3(原始)和修订后 IEEE ...
  • 以太网帧是OSI参考模型数据链路层封装,网络层数据包被加上帧头和帧尾,构成可由数据链路层识别数据帧。虽然帧头和帧尾所用字节数是固定不变,但根据被封装数据包大小不同,以太网长度也随之变化,...
  • 以太网的最大数据帧1518Bytes,以太网的帧头14Bytes,帧尾校验4Bytes 以太网最大传输单元(MTU):1518B - 14B - 4B = 1500Bytes 以太网最小MTU是576Bytes Internet上的标准MTU值为576字节   TCP数据包每次...
  • IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你IP包大于1500字节,IP层就会分片了。而1492...
  •  IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你IP包大于1500字节,IP层就会分片了。而...
  • IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你IP包大于1500字节,IP层就会分片了。而1492...
  •  IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你IP包大于1500字节,IP层就会分片了。而...
  • 其实在以前文章中介绍了和这个话题相关文章,这里还想继续回顾想以前内容,把不明白东西弄明白:IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,...
  • 由于是流,拆包和粘包是不可避免,产生原因有:1、应用程序write字节大小大于套接字缓冲区大小;...3、将消息分为消息头和消息,消息头包含表示消息总长度字段。 LineBaseFrameDecoder
  • IP分片在以太网上,由于电气限制,一帧不能超过1518字节,除去以太网帧头14字节(mac地址等)和帧尾4字节校验,还剩1500字节,这个大小称为MTU(最大传输单元)。如果你IP包大于1500字节,IP层就会分片了。而1492...
  •   ...1.1.4. 以太网的典型帧结构 ...以太网帧是OSI参考模型数据链路层的封装,网络层的数据包被加上帧头和帧尾,构成可由数据链路层识别的数据帧。虽然帧头和帧尾所用的字节数是固定不变的,但根据被封装数
  • MTU: Maxitum Transmission ...由于以太网EthernetII最大的数据帧是1518Bytes这样,刨去以太网的帧头(DMAC目的地址MAC48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和帧尾CRC校验部分4Bytes(这...
  • UDP数据包大小

    2017-11-12 15:11:00
    在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)---(1500+18),其中的18是链路层的首部和尾部18Bytes,也就是说数据帧的内容最大为1500(不包括帧头和帧尾),事实上,这个1500就是网络层的IP数据报...
  • 数据链路层简述

    2020-04-09 10:08:14
    数据链路层 概述 链路(Link)就是从一个结点到相邻结点一段物理线路,中间没有任何其他...数据链路层给上层交付协议数据单元添加帧头和帧尾使之成为帧。 帧头和帧尾中包含有重要控制信息。 以太网V2MAC帧...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

以太网的帧头和帧尾