首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

再谈以太网格式

又重新读了一遍《tcp/ip详解》,又重温了一遍万年知识以太网,为了不能忘却的回忆,我决定原文摘抄一遍。 以太网这个术语是指DEC、Intel和Xerox公司在1982年联合公布的一个标准。...不幸的 是,802.3定义了一个与以太网不同的格式。 下图定义了两种不同形式的封装格式: ?...在以太网格式中,类型字段之后就是数据,而在802格式中,跟随在后面的3字节的802.2LLC和5字节的802.2SNAP。 目的服务访问(DSAP)和源服务访问点(SSAP)的值都设为0xaa。...再接下来的2个字节类型字段和以以太网格式一样。 CRC字段用于内后续字节差错的循环冗余码检验。 802.3标准定义的以太网都有最小长度要求。...802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充字节。 最后注意一下,mtu的大小只是指内容的大小,不包括头。

98020

HCIE | 以太网数据、MAC地址介绍

2020 以太网数据、MAC YuLong XiaoZhan 玉 龙 小 栈 以太网链路传输的数据包称做以太,或者以太网数据。...在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。二层交换机设备维护CAM表,而CAM表中存放的是MAC地址。今天给大家介绍一下以太网数据格式和MAC地址格式。...以太网数据 以太网II格式 ? Ethernet_II 类型值大于等于1536 (0x0600)。 以太网数据的长度在64-1518字节之间。 802.3格式 ?...表示该的上层封装的是IP协议 2、0x0806 表示该的上层封装的是ARP协议 3、0x86DD表示该的上层封装的是IPv6协议 4、0x8847(单)、8848(组)表示该的上层封装的是MPLS...,E1.POS.SDH除外,这类接口都不是封装802协议),而所谓的以太网卡就是指遵循IEEE802协议的网络接口卡(网卡) MAC构成 MAC地址一共6byte,48bit,由两部分组成名分别是供应商代码和序列号

2.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

【计算机网络】数据链路层 : 以太网 ( 无连接、不可靠服务 | 以太网发展 | 10BASE-T 以太网 | MAC 地址 | 以太网 MAC | 高速以太网 )

地址 六、 以太网 MAC 七、高速以太网 一、 以太网 ( Ethernet ) 概述 ---- 以太网 ( Ethernet ) 概述 : ① 开发者 : 由 Xerox 公司创建 , 由 Xerox...) 服务 ---- 以太网 ( Ethernet ) 服务 : ① 无连接 : 发送方 接收方 之间 , 没有握手过程 ; ② 不可靠传输 : 数据没有编号 , 接收方不返回确认 , 差错直接丢弃...MAC ---- 以太网 V 2 格式 MAC : ① 头 : 6 字节目的地址 + 6 字节原地址 + 2 字节类型标识 ; 类型指的是 网络层 协议类型 ; ② 数据部分...: 上层传下来的 IP 数据报 , 长度 46 ~ 1500 字节 ; 最小长度来源 : 以太网最小长 64 字节 , 除去 头 14 字节 , 尾 4 字节 , 数据部分 还剩下..., 在 以太网 MAC 前 , 加入 1 字节的前导码 ; ⑤ 间隔 : 之间有一定的空白间隙 , 如果一段信号没有电压变化 , 说明这是间隔 ; 七、高速以太网 ---- 高速以太网

1.2K00

VLAN

在一个VLAN交换网络中,以太网主要有以下两种形式: 有标记(Tagged):加入了4字节VLAN标签的。 无标记(Untagged):原始的、未加入4字节VLAN标签的。...以太网链路包括接入链路(Access Link)和干道链路(Trunk Link)。...取值为0x8100时表示IEEE 802.1Q的VLAN数据。如果不支持802.1Q的设备收到这样的,会将其丢弃。各设备厂商可以自定义该字段的值。...在以太网中,CFI的值为0。 VID 12bit VLAN ID,表示该数据所属VLAN的编号。 VLAN ID取值范围是0~4095。...在Linux实现的VLAN中,只有当一个端口收到了一个数据,并且该数据是发往本地的时候,才会到达第三层的packet_type的func处理,否则只会被第二层处理,也就是Bridge逻辑处理,Linux

1.4K30

抓包分析以太网和IP数据包,头部那么多东东用来干啥的,扫盲篇

目录 抓包过程 以太网(也叫MAC)首部分析 IP数据包首部分析 抓包过程 使用了 Wireshark 进行抓包,用两个最常用的 curl 和 ping 命令来演示抓包情况,开启抓包。...抓包分析 以太网(也叫MAC)首部分析 ?...MAC = 6字节源mac地址 + 6字节目标mac地址 + 2字节类型 + 4字节检验序列FCS + 数据长度(46~1500字节) MAC长度是需要在64~1518字节之间的,太长或者太短都是无效的...以太网 小补充:检验序列即FCS(frame check sequence), 让接收的网卡或接口判断是否发生了错误。...片偏移 生存时间ttl:Linux给数据包的默认ttl是64,Windows系统是128,Unix系统是255,每次过一个路由器那么ttl-1,每次经过一个路由器就要减1,ttl耗尽了那么这个包就自动消失了

4.4K20

Go中链路层套接字的实践

这一层就可以自定义链路层的协议头部(header)了,下面是目前主流的Ethernet 2(以太网)标准的头部: ?...相比IP和TCP的头部,以太网的头部要简单些,仅有目标MAC地址,源MAC地址,数据协议类型(比如常见的IP和ARP协议)。 但多了尾部的FCS(校验序列),用的是CRC校验法。...如果校验错误,直接丢弃掉,不会送到上层的协议栈中,链路层只保证数据的正确性(丢掉错误的)。具体数据报的完整性由上层控制,比如TCP重传。...可在Linux中if_ether文件查看相应的值。...客户端 上面代码是服务端解析以太网协议头部,也可以自定义发送时头部: 建立socket句柄: var ohter = net.HardwareAddr{0x02, 0x42, 0xac, 0x11,

1.6K20

【斯坦福计网CS144】Lab5终结笔记

Lab5 2.1 实验目的 1 实现一个简单的网络接口,将IP数据报以数据链路层以太网的形式进行转发 2 深入理解地址解析协议ARP 3 深入立即以太网的转发过程 2.2 实验说明 1 在lab5...Linux提供了一个称为TUN设备的接口,它允许应用程序提供整个Internet数据报,而内核负责其余的工作(写入以太网标头,并通过物理以太网卡实际发送,等等)。...在上述的几种方法中,我们仍然依赖Linux内核来实现部分网络栈。每当代码将IP数据报写入TUN设备时,Linux必须以IP数据报作为有效负载构造一个链路层以太网。...这意味着Linux必须根据下一跳的IP地址计算出下一跳的以太网目的地址。如果它还不知道这个映射,Linux广播一个查询,问:“谁声明下面的IP地址?”你的以太网地址是什么?,然后等待回复。...我们的代码将生成原始以太网,这些将通过一个称为TAP设备的接口传递给Linux——TAP设备。类似于TUN设备,但更低级,因为它交换原始链路层而不是IP数据报。

10110

Linux以太网驱动(基于Zynq XC7Z020)

Linux以太网驱动架构 linux以太网架构共包含三个部分 1 linux的网络架构 2 以太网mac数据驱动(收发) 3 以太网phy的驱动 linux的网络驱动架构及流程 申请注册及初始化设备 1...这个函数包含在之前的注册函数中 ndev->netdev_ops = ðps_netdev_ops; 在这个函数中,我们要做的 1 将sk_buff中传过来的有效数据放入缓冲区 2 将缓冲区的数据通过mac发送出去 以太网...mac数据驱动(收发) 接收 很多芯片都包含mac,以太网mac的收发控制依赖于以太网描述符,以XC7Z020为例 描述符一共由两个32位寄存器组成,包含一个地址和很多的状态控制器。...描述符可以有很多个,将描述符的首地址和数量写入寄存器,以太网数据就会通过dma自动将数存入描述符所指向的地址中,一个描述符的地址写满之后处理器会自动继续将数据写入下一个描述中指向的地址。...以太网phy的驱动 phy驱动只要包括phy的初始化,以及网络状态的读取

1.2K30

Linux TunTap 介绍

TAP等同于一个以太网设备,它操作第二层数据包如以太网数据。TUN模拟了网络层设备,操作第三层数据包比如IP数据封包。...与之相对的是,Tap虚拟设备是以太网设备,处理的是二层以太网数据,从/dev/net/tun字符设备上读取的是以太网数据,写入的也只能是以太网数据。...Eth1在通过网线连接到以太网交换机的同时也被则加入了Linux Bridge,这相当于用一条网线将Linux Bridge上的一个端口(Eth1)连接到了本地站点的以太网交换机上,Eth1上收到的所有数据包都会被发送到...Linux Bridge上,Linux Bridge发给Eth1的数据包也会被发送到以太网交换机上。...Linux Bridge泛洪,将ARP请求发送往Eth1,由于Eth1连接到了以太网交换机上,以太网交换机接收到了该ARP请求。

2.4K10

详细解析以太网、ARP数据报、IP数据报、UDP数据报和TCP数据报的协议格式

本文将详细解析以太网、ARP数据报、IP数据报、UDP数据报和TCP数据报的协议格式,帮助你更好地理解网络通信中的数据格式和结构。图片2....以太网以太网是一种最常用的局域网技术,它使用以太网来传输数据。...以太网的格式如下: 目的MAC地址(6字节) 源MAC地址(6字节) 类型(2字节) 数据(46-1500字节) CRC(4字节)目的MAC地址:指示数据的接收方的物理地址。...源MAC地址:指示数据的发送方的物理地址。类型:表示上层协议的类型,如IP、ARP等。数据:传输的有效数据。CRC:循环冗余校验,用于检测数据传输中的错误。3....总结本文深入解析了常见网络协议格式,包括以太网、ARP数据报、IP数据报、UDP数据报和TCP数据报。通过了解这些协议的格式和结构,我们可以更好地理解网络通信中的数据传输和处理过程。

72030

从一次TSN相关协议实现中了解以太网MAC地址的含义

第一次看到以太网物理地址格式时,感觉很平淡。像看到IPV4和IPV6报文的标头部分一样没有感觉。但真正去理解以太网物理地址某些比特含义时,是在几年前的一次吹牛中体会到的。...需要捕获交给CPU的类型有两种: 1、MSRP报文:目的MAC为01-80-C2-00-00-0E,以太网类型为0x22EA; 2、MVRP报文:目的MAC为01-80-C2-00-00-21,以太网类型为...分析及查找问题 1、分析问题 通过Linux命令行配置目的MAC地址失败,原因肯定在该数据的通路上。...这个配置数据经过命令行输入后,会依次经过TCP/IP协议栈、驱动,然后再由AXI总线写入FPGA内部自定义的MAC寄存器。如果出现问题,那么肯定是这个通路没有走通。那到底是哪一步没有走通呢?...好在,捕获通道很顺利,很容易的就把目的地址为任意MAC地址的以太网都顺利的交给CPU了。(因为当时未保留MVRP和MSRP报文捕获成功的截图,随便找了一张上课演示的图片) ?

2K10

Linux网络-MAC协议

Linux网络-MAC协议 零、前言 一、数据链路层 二、以太网协议 1、认识以太网 2、以太网原理 3、以太网格式 4、MAC地址 5、认识MTU 三、ARP协议 四、RARP协议 零、前言 本章主要讲解...Linux网络中的数据链路层-以太网协议 一、数据链路层 示图: 数据传输大部分是跨网段进行的,而多个主机共同组成一个网段,不同的网段通过路由器连接(路由器同样也是主机),所以数据跨网段传输实质就是数据在主机间传输...以太网是当前应用最广泛的局域网技术,和以太网并列的还有令牌环网,无线LAN等 常见局域网技术: 以太网以太网是一种计算机局域网技术,一种应用最普遍的局域网技术 令牌环网:令牌环网常用于IBM系统中,在这种网络中有一种专门的称为...MAC后,对收到的MAC进行CRC校验,如果校验失败则说明数据发送过程中产生了碰撞 MAC如何将报头与有效载荷进行分离: 以太网MAC头和尾都是固定长度的,因此当底层收到一个MAC后...,直接提取出MAC当中固定长度的头和尾,此时剩下的就是有效载荷了 MAC如何决定将有效载荷交付: 在MAC头当中有2个字节的类型字段,因此在分离出报头和有效载荷后,根据该字段将有效载荷交付给对应的上层协议即可

2.4K10

嵌入式Linux下完成LCD屏文字显示(缓冲框架)

1.前言 缓冲框架是Linux下专门为显示类设备设计的接口,目的是将硬件和软件层分离开,方便应用层的编程,也方便应用层程序移植。...缓冲框架向驱动层和应用层分别提供了一套标准接口,驱动层按照框架编写驱动,应用层按照框架编写应用程序。缓冲在/dev目录下生成的标准节点是fb,比如:/dev/fb0,/dev/fb1等等。...当期的文字采用点阵方式取模来完成显示,比较简单,与单片机上的LCD编程思路一样,可以更方便快速学习缓冲编程。...后续正常开发中一般采用矢量字库完成字体显示,大小调整方便,字体更换方法,在前面文章有介绍过嵌入式Linux如何交叉编译freetype库。 2....编程思路 下面是缓冲框架图: 缓冲设备是标准的字符设备,通过open函数打开设备,再通过ioctl接口获取LCD屏的一些硬件参数信息,在利用mmap函数映射LCD屏的地址到应用层。

1.5K40

CS 144 Lab Five -- the network interface

当用户将 IP 报文发送给 TUN 设备后,剩余的以太网报头构造、发送以太网等等的操作均会由内核自动进行,无需用户干预。...每次用户向TUN设备写入IP数据报时,Linux 内核都必须构造一个适当的链路层(以太网),并将IP数据报作为其 payload。...因此 Linux 必须找出下一跳的以太网目的地址,给出下一跳的IP地址。如果 Linux 无法得知该映射关系,则将会发出广播探测请求以查找到下一跳的地址等信息。...而这种功能是由网络接口 network interface (也被称为适配器,两者等价)所实现,它将会把待出口的 IP 报文转换成链路层(以太网等等,之后将链路层发送给 TAP 虚拟网络设备,剩下的发送操作将会由它来代为完成...一块适配器可能因为广播操作,接收到了一个并非向它寻址的,因此当适配器接收到一个时,将检查并丢弃的目的MAC地址不与自己MAC地址匹配的以太网

15330

基于FPGA的以太网控制器(MAC)设计(上)

图 1 以太网协议逻辑关系的参考模型 MAC 子层有两个基本职能:数据封装,包括传输之前的集合和接收中、接收后的解析/差错监控;媒体访问控制,包括传输初始化和传输失败恢复。...例如,在 IP 协议栈从以太网驱动收到一个数据包后,经过解包、校验,确认是否为有效的 IP包,如无效则舍弃该包;如有效则进一步判断包内的数据,转而调用 TCP、UDP、ICMP 等协议或使用户自定义的处理服务...1.2 MAC子层 MAC 子层在上层协议和以太网网络之间传输和接收数据,其主要功能是确保以太网上每一数据的传输都遵循了 IEEE 802.3 规范所规定的介质存取规则。...如图 6 所示,使用这个以太网控制器外部连接一块 PHY 芯片(实现了物理层功能的芯片)就可以进行数据链路层的通信,即通信。...图 6 以太网控制器 这个以太网控制器具体实现了以下内容。 • 符合 IEEE 802.3x 规定的全双工控制。 • 半双工传输模式下的 CSMA/CD 协议。

1.1K10
领券