精华内容
下载资源
问答
  • 以太网数据帧首部
    千次阅读 多人点赞
    2020-08-25 21:18:49

    以太网数据帧详细解析

    详细解析以太网通信数据帧

    测试环境

    机器名macipport
    tcp_server00:0c:29:8b:37:da10.1.2.79502
    tcp_client00:50:56:c0:00:0810.1.2.112345

    抓包 客户端向服务端发送 'hello world’

    # 原始数据帧
    00 0c 29 8b 37 da 00 50 56 c0 00 08 08 00 # Ethernet_II格式数据帧首部
    45 00 00 33 28 5b 40 00 80 06 ba 80 0a 01 02 01 0a 01 02 07 # ip协议头
    30 39 25 1e 84 a4 e6 82 cf f2 ea 28 50 18 10 0a 7b 45 00 00 # tcp协议头
    68 65 6c 6c 6f 20 77 6f 72 6c 64 # data
    

    以太网数据帧构成

    https://xinu-note-images.oss-cn-beijing.aliyuncs.com/UTOOLS1575647451248.png

    Ethernet_II格式数据帧首部 链路层

    总长度 14B

    字段名称长度(byte)含义
    D.MAC6接收方MAC地址,网络包接收方的MAC地址,在局域网中使用这一地址来传输网络包
    S.MAC6网络包发送方的MAC地址,接收方通过它来判断是谁发送了这个包
    Type2使用的协议类型。
    TCP通信中 IP协议与ARP协议较常见
    0000-05DC:IEEE 802.3
    0800 :IP协议
    0806 :ARP协议
    86DD :IPv6

    实例

    # Ethernet_II格式数据帧首部 14 bytes
    00 0c 29 8b 37 da # 目标MAC地址 00:0c:29:8b:37:da
    00 50 56 c0 00 08 # 源MAC地址 00:50:56:c0:00:08
    08 00 # IP协议
    

    IP协议数据包首部 网络层

    总长度 20B+

    字段名称长度(bit)含义
    版本号(Version)4协议的版本一般的值为
    0100(IPv4),
    0110(IPv6)
    头部长度(IHL)4Header Length,描述IP包头的长度,
    因为在IP包头中有变长的可选部分。长度 = 值 * 4,
    4bit最大 ‘1111’ = 15, IP头长度为20 - 60(15 * 4) 字节
    服务类型(ToS)8Type of Service,服务类型8位 按位被如下定义 PPP DTRC0
    PPP:定义包的优先级,取值越大越重要
    000 普通 (Routine)
    001 优先的 (Priority)
    010 立即的发送 (Immediate)
    011 闪电式的 (Flash)
    100 比闪电还闪电式的 (Flash Override)
    101 CRI/TIC/ECP(找不到这个词的翻译)
    110 网间控制 (Internetwork Control)
    111 网络控制 (Network Control)

    D 时延: 0:普通 1:延迟尽量小
    T 吞吐量: 0:普通 1:流量尽量大
    R 可靠性: 0:普通 1:可靠性尽量大
    M 传输成本: 0:普通 1:成本尽量小
    0 最后一位被保留,恒定为0
    总长度16Total Length IP包总长度 以字节为单位计算的IP包的长度
    (包括头部和数据),所以IP包最大长度65535字节
    ID号16该字段和Flag和Fragment Offest字段联合使用,对较大的
    上层数据包进行分段(fragment)操作。路由器将一个包拆
    分后,所有拆分开的小包被标记相同的值,以便目的端设备<br/ >能够区分哪个包属于被拆分开的包的一部分。
    标志(Flags)3长度3比特。该字段第一位不使用。第二位是DF
    (Don’t Fragment)位,DF位设为1时表明路由器不能对该
    上层数据包分段。如果一个上层数据包无法在不分段的情况
    下进行转发,则路由器会丢弃该上层数据包并返回一个错误
    信息。第三位是MF(More Fragments)位,当路由器对一
    个上层数据包分段,则路由器会在除了最后一个分段的IP包
    的包头中将MF位设为1。
    分片偏移量13Fragment Offest 表示该IP包在该组分片包中位置,接收端
    靠此来组装还原IP包。
    生存时间(TTL)8当IP包进行传送时,先会对该字段赋予某个特定的值。当IP
    包经过每一个沿途的路由器的时候,每个沿途的路由器会将
    IP包的TTL值减少1。如果TTL减少为0,则该IP包会被丢弃。
    这个字段可以防止由于路由环路而导致IP包在网络中不停被转发。
    协议号8标识了上层所使用的协议。以下是比较常用的协议号:
    1 ICMP
    2 IGMP
    6 TCP
    17 UDP
    88 IGRP
    89 OSPF
    头部校验和16Header Checksum
    用来做IP头部的正确性检测,但不包含数据部分。 因为每个
    路由器要改变TTL的值,所以路由器会为每个通过的数据包重
    新计算这个值。
    发送方IP地址32Source Addresses 发送方IP地址。除非使用NAT,否则
    整个传输的过程中,这两个地址不会改变
    接收方IP地址32Destination Addresses 接收方IP地址。除非使用NAT,否则
    整个传输的过程中,这两个地址不会改变
    可选字段一般测试使用

    实例

    # ip协议头20字节
    4 # 协议版本 ipv4
    5 # ip协议头长度 5 * 4 = 20字节
    00 # 服务类型 000-0-0-0-0-0  
    00 33 # ip包总长度 hex => dec 51字节
    28 5b # ID号 
    40 00 # 标志与分片偏移量 0100 0000 0000 0000 DF位为1 不允许分包 偏移量为0
    80 # 生存时间 dec 128
    06 # 协议号 TCP协议
    ba 80 # 头部校验和
    0a 01 02 01 # 发送方ip 10.1.2.1
    0a 01 02 07 # 接收方ip 10.1.2.7
    
    # ip协议头 头部校验和计算方法
    # 1. 头部校验和置0;
    # 2. 对IP头部中的每16bit进行二进制求和;
    # 3. 如果和的高16bit不为0,则将和的高16bit和低16bit反复相加,直到和的高16bit为0,从而获得一个16bit的 值;
    # 4. 将该16bit的值取反,存入校验和字段。
    

    TCP协议头 传输层

    图示

    https://xinu-note-images.oss-cn-beijing.aliyuncs.com/UTOOLS1575643308334.png

    总长度 20B+

    字段名长度(bit)含义
    源端口号16发送网络包的程序的端口号
    目的端口号16网络包的接收方程序的端口号
    序列号 seq32发送的时候,TCP 协议为每个包编号(sequence number,
    简称 SEQ),以便接收的一方按照顺序还原。万一发生丢包
    ,也可以知道丢失的是哪一个包。
    当前序列号 + 数据长度 = 下一个包的序列号
    确认序列号 ack32期待要收到下一个数据包的编号,ack与seq搭配确保数据的
    完整性,确认号只有ACK位为1时才有效。
    首部长度(数据偏移量)4表示数据部分的起始位置,也可以认为表示头部的长度
    保留6保留,未使用
    控制位6该字段中的每个比特分别表示以下通信控制含义。
    URG:表示紧急指针字段有效

    ACK:接收数据序号字段有效,一般表示数据已被接收方接收
    该位只有在连接未建立时为0,连接建立后始终为1

    PSH:表示通过flush操作发送的数据,指示接收方在接收到
    该报文段以后,应尽快将这个报文段交给应用程序,而不是
    在缓冲区排队。

    RST:强制断开连接,用于异常中断的情况

    SYN:同步序号,用于建立连接过程,在连接请求中发送SYN=1
    和ACK=0 , 应答 SYN=1和ACK=1

    FIN:用于释放连接,为1时表示发送方已经没有数据发送了,
    即关闭本方数据流。
    窗口16接收方告知发送方窗口大小(即无需等待确认可一起发送的数据量)
    校验和16用来检查是否出现错误
    紧急指针16只有当 URG 标志置 1 时紧急指针才有效。紧急指针是一个
    正的偏移量,和顺序号字段中的值相加表示紧急数据最后一
    个字节的序号。 TCP 的紧急方式是发送端向另一端发送紧急
    数据的一种方式。
    选项和填充不定最常见的可选字段是最长报文大小,又称为MSS
    (Maximum Segment Size),每个连接方通常都在通
    信的第一个报文段(为建立连接而设置SYN标志为1的那
    个段)中指明这个选项,它表示本端所能接受的最大报
    文段的长度。选项长度不一定是32位的整数倍,所以要
    加填充位,即在这个字段中加入额外的零,以保证TCP
    头是32的整数倍。
    数据可选

    实例

    # tcp协议头 20字节
    30 39 # 源端口 12345
    25 1e # 目的端口 9502 
    84 a4 e6 82 # 序列号 
    cf f2 ea 28 # 确认序列号
    5 # 首部长度 5 * 32 / 8 = 20 bytes
    0 1 8 # 000000 保留 011000 ACK=1 PSH=1
    10 0a # 窗口大小 4106
    7b 45 # 校验和
    00 00 # URG=0 无效
    # 传输的数据
    68 65 6c 6c 6f 20 77 6f 72 6c 64  # ascii码
    h  e  l  l  o     w  o  r  l  d
    

    附录

    每一个数据包都带有下一个数据包的编号。如果下一个数据包没有收到,那么 ACK 的编号就不会发生变化。举例来说,现在收到了4号包,但是没有收到5号包。ACK 就会记录,期待收到5号包。过了一段时间,5号包收到了,那么下一轮 ACK 会更新编号。如果5号包还是没收到,但是收到了6号包或7号包,那么 ACK 里面的编号不会变化,总是显示5号包。这会导致大量重复内容的 ACK。如果发送方发现收到三个连续的重复 ACK,或者超时了还没有收到任何 ACK,就会确认丢包,即5号包遗失了,从而再次发送这个包。通过这种机制,TCP 保证了不会有数据包丢失。

    UDP协议

    https://xinu-note-images.oss-cn-beijing.aliyuncs.com/UTOOLS1575899141973.png

    更多相关内容
  • 关于pcap截取的网卡数据帧的分析;一个Demo说明网络协议封分层以及具体截获的包分析说明 一个实际的包数据分析 packet_header ------>包帧的头部---16字节 --------packet_content start--------- 52 54 00 12 35 ...
  • 以太网帧,IP,TCP,UDP首部结构

    千次阅读 2018-01-24 22:03:57
    1.以太网帧的格式2.IP报头格式IP是TCP/IP协议簇中最为重要的协议。所有的TCP,UDP, ICMP和IGMP数据都以IP数据报格式传输。IP提供的是不可靠、无连接的协议。普通的IP首部长为20个字节,除非含有选项字段。4位版本:...

    1.以太网帧的格式

    这里写图片描述

    2.IP报头格式

    IP是TCP/IP协议簇中最为重要的协议。所有的TCP,UDP, ICMP和IGMP数据都以IP数据报格式传输。IP提供的是不可靠、无连接的协议。

    这里写图片描述

    普通的IP首部长为20个字节,除非含有选项字段。

    4位版本:目前协议版本号是4,因此IP有时也称作IPV4.

    4位首部长度:首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部长度最长为60个字节。

    服务类型(TOS):服务类型字段包括一个3bit的优先权字段(现在已经被忽略),4bit的TOS子字段和1bit未用位必须置0。4bit的TOS分别代表:最小时延,最大吞吐量,最高可靠性和最小费用。4bit中只能置其中1比特。如果所有4bit均为0,那么就意味着是一般服务。

    总长度:总长度字段是指整个IP数据报的长度,以字节为单位。利用首部长度和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16bit,所以IP数据报最长可达65535字节。当数据报被分片时,该字段的值也随着变化。

    标识字段:标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。

    生存时间:T T L(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。T T L的初始值由源主机设置(通常为 3 2或6 4),一旦经过一个处理它的路由器,它的值就减去 1。当该字段的值为 0时,数据报就被丢弃,并发送 I C M P报文通知源主机。

    首部检验和:首部检验和字段是根据 I P首部计算的检验和码。它不对首部后面的数据进行计算。 I C M P、
    I G M P、U D P和T C P在它们各自的首部中均含有同时覆盖首部和数据检验和码。

    3.TCP首部格式

      尽管T C P和U D P都使用相同的网络层( I P),T C P却向应用层提供与U D P完全不同的服务。T C P提供一种面向连接的、可靠的字节流服务。

      如果不计任选字段,它通常是 2 0个字节。

    这里写图片描述

    源端口号和目的端口号:用于寻找发端和收端应用进程。这两个值加上I P首部中的源端I P地址和目的端I P地址唯一确定一个T C P连接。

    序号字段:序号用来标识从T C P发端向T C P收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节。如果将字节流看作在两个应用程序间的单向流动,则 T C P用序号对每个字节进行计数。序号是32 bit的无符号数,序号到达 232-1后又从0开始。

    当建立一个新的连接时,SYN标志变1。序号字段包含由这个主机选择的该连接的初始序号ISN(Initial Sequence Number)。该主机要发送数据的第一个字节序号为这个ISN加1,因为SYN标志消耗了一个序号(将在下章详细介绍如何建立和终止连接,届时我们将看到 F I N标志也要占用一个序号)

    确认序号:既然每个传输的字节都被计数,确认序号包含发送确认的一端所期望收到的下一个序号。因此,确认序号应当是上次已成功收到数据字节序号加 1。只有ACK标志(下面介绍)为 1时确认序号字段才有效。发送ACK无需任何代价,因为 32 bit的确认序号字段和A C K标志一样,总是T C P首部的一
    部分。因此,我们看到一旦一个连接建立起来,这个字段总是被设置, ACK标志也总是被设置为1。TCP为应用层提供全双工服务。这意味数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。

    首都长度:首部长度给出首部中 32 bit字的数目。需要这个值是因为任选字段的长度是可变的。这个字段占4 bit,因此T C P最多有6 0字节的首部。然而,没有任选字段,正常的长度是 2 0字节。

    标志字段:在T C P首部中有 6个标志比特。它们中的多个可同时被设置为1.
        URG紧急指针(u rgent pointer)有效。
        ACK确认序号有效。
        PSH接收方应该尽快将这个报文段交给应用层。
        RST重建连接。
        SYN同步序号用来发起一个连接。这个标志和下一个标志将在第 1 8章介绍。
        FIN发端完成发送任务。

    窗口大小:T C P的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个 16 bit字段,因而窗口大小最大为 65535字节。

    检验和:检验和覆盖了整个的 T C P报文段:T C P首部和T C P数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。

    紧急指针:只有当URG标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。 T C P的紧急方式是发送端向另一端发送紧急数据的一种方式。

    选项:最常见的可选字段是最长报文大小,又称为 MSS (Maximum Segment Size)。每个连接方通常都在通信的第一个报文段(为建立连接而设置 S Y N标志的那个段)中指明这个选项。它指明本端所能接收的最大长度的报文段。

    4. UDP首部

    UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的 I P数据报。这与面向流字符的协议不同,如 T C P,应用程序产生的全体数据与真正发送的单个 I P数据报可能没有什么联系。

    这里写图片描述

    端口号:用来表示发送和接受进程。由于 I P层已经把I P数据报分配给T C P或U D P(根据I P首部中协议字段值),因此T C P端口号由T C P来查看,而 U D P端口号由UDP来查看。T C P端口号与UDP端口号是相互独立的。

    长度:UDP长度字段指的是UDP首部和UDP数据的字节长度。该字段的最小值为 8字节(发送一份0字节的UDP数据报是 O K)。

    检验和:UDP检验和是一个端到端的检验和。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在发送端到接收端之间发生的任何改动。

    展开全文
  • 第1章 以太网数据帧实验;第一单元 网络协议篇;第1章;实验目的与实验环境;以太网Ethernet;以太网帧格式 ;MAC地址;大家学习辛苦了还是要坚持;MAC地址;Packet Tracer 网络仿真器;12;实验步骤;初探MAC帧 在模拟模式下...
  • 以太网数据帧格式及ARP协议

    千次阅读 2020-08-29 15:59:52
    在物理层上看,一个完整的以太网帧有7个字段,事实上,前两个字段并不能算是真正意义上的以太网数据帧,它们是以太网在物理层上发送以太网数据时添加上去的。为了实现底层数据的正确阐述,物理层使用7个字节前同步码...

    一、以太网中数据帧结构

    以太网是目前最流行的一种局域网组网技术(其他常见局域网组网技术还有令牌环局域网、无线局域网、ATM局域网),以太网技术的正式标准是IEEE 802.3标准,它规定了在以太网中传输的数据帧结构,如下图所示。

                  

    在物理层上看,一个完整的以太网帧有7个字段,事实上,前两个字段并不能算是真正意义上的以太网数据帧,它们是以太网在物理层上发送以太网数据时添加上去的。为了实现底层数据的正确阐述,物理层使用7个字节前同步码(0和1交替的56位(55-55-55-55-55-55-55))实现物理层帧输入/输出同步;使用1个字节的SFD(帧首定界符,固定为10101011)标识帧的开始。上图中剩下的5个字段是真正的以太网数据,其中包含了目的地址和源地址,它们都是6字节长度(通常每个网卡都有1个6个字节MAC地址,以在以太网中唯一地标识自己)。网卡接收数据时,通过将目的地址字段和自身的MAC地址做比较,判断是否接收该数据包。通常,将这里的6字节目的地址按照下面的格式来书写,如:00-01-02-03-04-05。这6个字节在以太网中是按照从左到右的顺序发送的,同时对每个字节来说,最先发送的是最低位bit0,最后是最高位bit7。

          在以太网帧中,目的地址可以分为三类:单播地址、多播地址和广播地址。单播地址通常与一个具体网卡的MAC地址相对应,它要求第一个字节的bit0(即最先发出去的位)必须是0;多播地址则要求第一个字节的bit0为1,这样,在网络中多播地址不会与任何网卡的MAC相同,多播数据可以被很多个网卡同时接收;广播地址的所有48位全为1(即FF-FF-FF-FF-FF-FF),同一局域网中的所有网卡可以接收广播数据包。

    上图中的长度/类型具有两个意义,当这两个字节的值小雨1518时,那么它就代表其后数据字段的长度;如果这两个字节的值大于1518,则表示该以太网帧中的数据属于哪个上层协议(例如0x800,代表IP数据包;0x806,代表ARP数据包等。)

    在使用网卡进行数据包的发送与接收时,网卡已为我们完成了物理层的所有工作,驱动程序要做的是,在发送数据时,将目的地址、源地址、类型/长度、数据和填充这些值写入网卡,网卡自动计算其CRC并添加在数据帧尾部,同时对数据帧进行物理层的封装,最后将数据帧发送出去;在接收数据时,网卡会自动检测并接收数据包,验证校验和并把上述四个字段的值放在内部SRAM中供控制器读取。

    TCP/IP协议有自己的地址:32bit的IP地址(网络地址),网络层发送数据包时只知道目的地址的IP地址,而底层接口(如以太网驱动程序)必须知道对方的硬件地址才能将数据发送出去。

    二、ARP协议

    ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射,为上层将底层的物理地址差异屏蔽起来,这样上层的因特网协议就可以灵活地使用IP地址进行通信了。ARP协议的基本功能是使用目标主机的IP地址,查询其对应的MAC地址,以保证底层链路上数据包通信的进行。为了实现在网络接口物理地址与IP地址间的转换,ARP协议中引入了ARP缓存表的概念。ARP缓存表中记录了一条一条的<IP地址,MAC地址>对,他们是主机最近运行获得的关于周围其他主机的IP地址到物理地址的绑定,当需要发送IP数据包时,ARP层根据目的IP地址来查找ARP缓存表,并将匹配的MAC地址装入以太网帧首部,最后发送以太网数据。

    ARP缓存表的建立与ARP数据包是密切相关的。在以太网中,ARP数据包和IP数据包是两个独立的部分,它们都封装在以太网帧中发送。ARP数据包的种类有两种:一是ARP请求包,它是通过以太网广播的方式发送的,用于向具有某个IP地址的主机发送请求,希望该主机返回其MAC地址;二是ARP应答包,收到ARP请求的主机会比对该数据包中的IP地址与自己的IP地址是否符合,若是,则该主机向源主机返回一个ARP应答包。向源主机报告自己的MAC地址。源主机通过提取ARP应答包中的相关字段来更新ARP缓存表。在Windows控制台上输入arp -a,可以查看操作系统中使用的ARP缓存表。

    举一个简单的例子来看看ARP的功能。假如我们的主机(192.168.1.11)需要向开发板(192.168.1.37)发送一个IP数据包,当发送数据时,主机会在自己的ARP缓存表中寻找是否有目标IP地址。如果找到了,也就知道了目标MAC地址为(04-02-35-00-00-01),此时,主机直接把目标MAC地址写入以太网首部发送就可以了;如果在ARP缓存表中没有找到相对应的IP地址,此时比较不幸,我们的数据需要被延迟发送,随后主机会先在网络上发送一个广播(ARP请求,以太网目的地址为FF-FF-FF-FF-FF-FF),广播的ARP请求表示同一网段内所有主机将会收到这样一条信息:“192.168.1.37的MAC地址是什么?请回答”。网络IP地址为192.168.1.37(开发板)的主机接收到这个帧后,它有义务做出这样的回答(ARP应答):“192.168.1.37的MAC地址是(04-02-35-00-00-01)”。这样,主机就知道了开发板的MAC地址,先前被延时的数据包就可以被发送了,此外,主机将这个地址对保存在缓存表中,以便后续数据包发送时使用。

    ARP协议的核心就是对ARP缓存表的操作。发送数据包时,查找缓存表以得到目的MAC地址,此外,ARP还需要不断地处理ARP请求包和ARP应答包,以保证缓存表中各个表项的有效性。ARP的实质就是对缓存表的建立、更新、查询等操作。

    2.2 ARP报文

    要在源主机上建立关于目标主机的IP地址与MAC地址对应表项,则源主机和目的主机的基本信息交互式必须的,简单地说就是,源主机如何告诉目的主机:我需要你的MAC地址;而目的主机如何回复:这就是我的MAC地址。这时ARP报文(ARP数据包)就派上用场了。

    ARP请求和ARP应答都是被组装在一个ARP数据包中发送的,ARP包的组成结构如下图所示。需要注意的是:ARP包时被封装在以太网帧中发送的,所以在图中也列出了以太网帧头部。

          以太网帧头部中的前两个字段是以太网的MAC地址和源MAC地址,目的地址为全1的特殊地址是以太网广播地址。在ARP表项建立前,源主机只知道目的主机的IP地址,并不知道其MAC地址,所以在数据链路上,源主机只有通过广播的方式将ARP请求数据包发送出去,同一网段上的所有以太网接口都会接收到广播的数据包。

           两个字节长的以太网帧类型表示帧中数据的类型。对于ARP包来说,该字段值为0x0806;对IP包来说,该字段的值为0x0800。接下来就是ARP数据包部分了,第一个硬件类型字段表示发送方想要知道的硬件接口类型,对于以太网MAC地址,它的值为1.协议类型字段表示要映射的协议地址类型,它的值为0x0800时,即表示要映射为IP地址,该值与以太网数据帧头中的类型字段的值使用相同的一组值。

    接下来的两个单字节长度的字段,称为硬件地址长度和协议地址长度,它们分别指出硬件地址和协议地址的长度,长度单位为字节。对于以太网上ARP请求或应答来说,它们的值分别为6和4,代表MAC地址的长度和IP地址的长度。在ARP协议包中流出硬件地址长度和协议地址长度字段可以使得ARP协议在任何网络中被使用,而不仅仅只在以太网中。

          操作字段op指出ARP数据包的类型,它们可以使ARP请求(值为1)、ARP应答(值为2)。

          接下来的四个字段是发送端的以太网MAC地址、发送端的IP地址、目的端的以太网MAC地址和目的端的IP地址。

     

     

    展开全文
  • 以太网数据帧结构以及大小限制

    千次阅读 2018-04-09 21:47:58
    以太网数据帧结构 以太网是目前最流行的一种局域网组网技术(其他常见局域网组网技术还有令牌环局域网、无线局域网、ATM局域网),以太网技术的正式标准是IEEE 802.3标准,它规定了在以太网中传输的数据帧结构,如...

     以太网数据帧结构    

           以太网是目前最流行的一种局域网组网技术(其他常见局域网组网技术还有令牌环局域网、无线局域网、ATM局域网),以太网技术的正式标准是IEEE 802.3标准,它规定了在以太网中传输的数据帧结构,如下图所示。

                  

          1、前导码/帧起始定界符:7字节0x55,一串1、0间隔,用于信号同步,1字节0xD5(10101011),表示一帧开始
      2、目的地址:6字节
      3、源地址:6字节
      4、类型/长度:2字节,0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)
      5、数据:46~1500字节
      6、帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和。

            ARP报文是典型的以太网数据帧,他的结构为:

          以太网帧头部中的前两个字段是以太网的MAC地址和源MAC地址,目的地址为全1的特殊地址是以太网广播地址。在ARP表项建立前,源主机只知道目的主机的IP地址,并不知道其MAC地址,所以在数据链路上,源主机只有通过广播的方式将ARP请求数据包发送出去,同一网段上的所有以太网接口都会接收到广播的数据包。

           两个字节长的以太网帧类型表示帧中数据的类型。对于ARP包来说,该字段值为0x0806;对IP包来说,该字段的值为0x0800。接下来就是ARP数据包部分了,第一个硬件类型字段表示发送方想要知道的硬件接口类型,对于以太网MAC地址,它的值为1.协议类型字段表示要映射的协议地址类型,它的值为0x0800时,即表示要映射为IP地址,该值与以太网数据帧头中的类型字段的值使用相同的一组值。

    接下来的两个单字节长度的字段,称为硬件地址长度和协议地址长度,它们分别指出硬件地址和协议地址的长度,长度单位为字节。对于以太网上ARP请求或应答来说,它们的值分别为6和4,代表MAC地址的长度和IP地址的长度。在ARP协议包中流出硬件地址长度和协议地址长度字段可以使得ARP协议在任何网络中被使用,而不仅仅只在以太网中。

          操作字段op指出ARP数据包的类型,它们可以使ARP请求(值为1)、ARP应答(值为2)。

          接下来的四个字段是发送端的以太网MAC地址、发送端的IP地址、目的端的以太网MAC地址和目的端的IP地址。


    大小限制

        我们注意到上面提到数据的大小46~1500字节.46是如何算出来的呢?

        这里一句话带过,为了避免信号碰撞.也就是说信号在A和B之间传输 的来回时间必须控制在一定范围之内。IEEE定义了这个标准,一个碰撞域内,最远的两台机器之间的round-trip time 要小于512bit time.(来回时间小于512位时,所谓位时就是传输一个比特需要的时间)。这也是我们常说的一个碰撞域的直径。

      512个位时,也就是64字节的传输时间,如果以太网数据包大于或等于64个字节,就能保证碰撞信号到达A的时候,数据包还没有传完。

        前面提到,以太网首部要占14个字节,最后一个帧校验序列(FCS)占4字节.(前导码/帧起始定界符并不能算是真正意义上的以太网数据帧,它们是以太网在物理层上发送以太网数据时添加上去的),所以数据最小必须是64-14-4=46字节.对于ARP协议,数据长度只有28字节,剩余必须全部补0,为18个字节.

        最长长度1500字节也是以太网的规定,目的是避免数据太长,导致数据一直占用信道.



        参考:

        为什么以太网数据帧最小为64字节

        以太网完整协议

    展开全文
  • 以太网(IEEE 802.3)格式: 1、前导码:7字节0x55,一串1、0间隔,用于信号同步 2、起始定界符:1字节0xD5(10101011),表示一开始 3、DA(目的MAC):6字节 4、SA(源MAC):6字节 5、类型/长度:2字节,0~1500保留...
  • 网络基础知识(以太网帧结构)二

    千次阅读 2019-04-11 18:26:30
    以太网帧整体结构 3. 以太网帧
  • 14[单选题] 以太网中计算机间以帧为单位进行通信,下列选项中不属于以太网数据帧内容的是( )。  A.IP地址  B.MAC地址  C.有效载荷  D.校验信息  参考答案:A  参考解析:以太网数据帧:前导码(7字节)、...
  • 计算机网络-以太网帧的构成

    千次阅读 2022-03-14 15:51:19
    以太网链路上的数据包称作以太。 以太起始部分由前导码和开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。的中部是该负载的包含其他协议报头的数据包(例如IP协议)。以太由...
  • 详解以太网MAC格式

    千次阅读 2022-03-12 16:34:37
    各大厂商和标准组织为了在数据通信网 络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM 公司的SNA 协议, Novell 公司的IPX/SPX 协议,以及广泛流行的OSI 参考模型和TCP/IP协议。同时,各大厂 商根据...
  • 以太网帧,IP,TCP,UDP首部结构

    万次阅读 多人点赞 2016-10-13 18:31:37
    1.以太网帧的格式以太网封装格式2.IP报头格式 IP是TCP/IP协议簇中最为重要的协议。所有的TCP,UDP, ICMP和IGMP数据都以IP数据报格式传输。IP提供的是不可靠、无连接的协议。  普通的IP首部长为20个字节,除非含有...
  • 以太网链路传输的数据包称作以太帧(以太网数据帧), 在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。 以太网帧格式 目的地址和源地址是网卡的硬件地址(MAC地址), 长度为48位 ...
  • 以太网帧格式 常用的以太网MAC格式有两种标准,一种是EthernetV2标准(即以太网V2标准),另一种是IEEE的802.3标准。使用得最多的是以太网V2的MAC格式。 以太网有三个字段,也就是CSMACD这个协议规定了...
  • 上一小节,我们通过一个虚构的协议,初步认识了数据链路层的工作原理。数据链路层主要解决由若干主机组成的本地网络的通讯问题,主机寻址 和 ...以太网帧以太网中,数据通信的基本单位是 以太网帧 ( 
  • 以太网UDP发包设计

    2022-06-13 17:16:29
    RTL8211 是一片 10M/100M/1000M 自适应以太网收发器,提供 MII/GMII/RGMII 接口的 MAC 连接。 下图为 RTL8211 与 FPGA 的连接关系。 以太网MAC层(媒体介入控制层)接口介绍 PHY是物理接口收发器,它实现物理层。...
  • 以太网帧和一些标准

    千次阅读 2021-01-13 09:22:33
    链路层3.2.2 以太网帧格式校验序列/循环冗余校验大小802.1p/q:虚拟局域网和Oos标签802.1AX :链路聚合(以前的802.3ad) 3.2.2 以太网帧格式 48位(6字节)的目的地址(DST)和源地址(SRC)字段 他们也叫MAC地址...
  • 以太网帧结构详解

    万次阅读 多人点赞 2019-07-15 21:52:59
    以太网帧结构详解前言分层模型- OSI分层模型– TCP/IP数据封装终端之间的通信帧格式Ethernet_II 帧格式IEEE802.3 帧格式数据帧传输以太网的MAC地址数据帧的发送和接收单播广播组播发送与接收 前言 20世纪60年代以来...
  • 在开始阅读之前,如果你对已介绍的总线技术还不了解的话,可以先阅读以下文章快速温习一下,等补完车载以太网和MOST,汽车总线技术楼主基本分享结束了。说一说LIN总线CAN总线基础(一)CAN总线基础(下)CAN FD 介绍...
  • 最小的是64字节,要求数据区(有效载荷)长度(无标签)最小为48字节。当有效载荷较小时,填充字节(值为0)被添加到有效载荷尾部,以确保达到最小长度。 传统以太网的最大长度是1518字节(包括4字节CRC和14字节头部)。...
  • 以太网帧分析

    千次阅读 2021-09-21 16:05:56
    OSI 模型的数据链路层(第 2 层)实际上由两个子层组成:媒体访问控制 (MAC) 子层和逻辑链路控制 (LLC) 子层。 MAC 子层控制设备交互。... 它们包含除其他外的以太网帧,该被分成多个数据集。 这些记录由提供重要信
  • 以太网(IEEE 802.3)格式: 1、前导码:7字节0x55,一串1、0间隔,用于信号同步 2、起始定界符:1字节0xD5(10101011),表示一开始 3、DA(目的MAC):6字节 4、SA(源MAC):6字节 5、类型/长度:2字节,0~...
  • 以太网的MAC(一)

    万次阅读 热门讨论 2020-08-02 18:53:10
    以太网MAC格式有两种标准:DIX Ethernet V2标准和IEEE 802.3标准。DIX以太网V2标准的格式如图: 前导码: 使接收端与发送端时钟同步,在的前面插入的8字节,可再分为两字段:第一个字段共7字节,是前同步码,...
  • 以太网帧的格式

    2021-07-24 17:36:56
    用于表示数据链路层中包的单位,所以在以太网中传输的数据包又被称为以太网帧。在每个分层中都会对所发送的数据附加一个首部。所以在以太网中的包是由网络层中传输的数据加上以太网首部构成。 以太网帧的格式...
  • 用 WinPCAP 监听并分析以太网,记录目标与源 MAC 和 IP 地址
  • 以太网中的结构

    2020-05-16 23:32:36
    6.表示层-----------数据格式化、加密、解密 5.会话层-----------建立、维护、管理会话连接 4.传输层-----------建立、维护、管理端到端连接 3.网络层-----------IP寻址和路由选择 2.数据链路层------控制网络层和...
  • IP协议和以太网帧

    2022-05-04 11:26:44
    目录IP协议IP协议报头IP协议作用以太网以太网帧格式总结 IP协议 IP协议报头 4位版本号:IP协议的版本号,当前只有IPV4和IPV6 4位首部长度:由于选项的存在,IP的报头的长度是可变的. 8位服务类型:3位优先权字段(已经弃...
  • MAC首部 IP首部 TCP首部介绍

    千次阅读 2020-07-24 12:12:46
    了解数据传输过程中的MAC帧首部,IP数据包首部,TCP首部。了解结构是基本,为了直观显示,本文采用抓包的方式逐层验证这些首部结构。同时,列出这些首部结构在系统中C语言结构体的实现。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,052
精华内容 6,020
热门标签
关键字:

以太网数据帧首部