常见的以太网帧结构由ETHERNET II 和 IEEE802.3。
ETHERNET II 数据链路层帧格式
IEEE802.3数据链路层帧格式
Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节的类型,而后者定义的是2字节的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。
关于类型/长度字段两个字节定义(十六进制):
0x0000 - 0x05DC IEEE 802.3 长度
0x0101 – 0x01FF实验
0x0600 XEROX NS IDP
0x0660 0x0661DLOG
0x0800网际协议(IP)
0x0801 X.75 Internet
0x0802 NBS Internet
0x0803 ECMA Internet
0x0804 Chaosnet
0x0805 X.25 Level 3
0x0806地址解析协议(ARP : Address Resolution Protocol)
0x0808 帧中继 ARP (Frame Relay ARP) [RFC1701]
0x6559 原始帧中继(Raw Frame Relay) [RFC1701]
0x8035动态 DARP (DRARP:Dynamic RARP)反向地址解析协议(RARP:Reverse Address Resolution Protocol)
0x8037Novell Netware IPX
0x809BEtherTalk
0x80D5 IBM SNA Services over Ethernet
0x80F3AppleTalk 地址解析协议(AARP:AppleTalk Address Resolution Protocol)
0x8100 以太网自动保护开关(EAPS:Ethernet Automatic Protection Switching)
0x8137 因特网包交换(IPX:Internet Packet Exchange)
0x814C 简单网络管理协议(SNMP:Simple Network Management Protocol)
0x86DD网际协议v6(IPv6,Internet Protocol version 6)
0x8809 OAM
数据链路层ARP/RARP帧结构如下:
具体ARP报文封装,详见FPGA极客空间文章《经典协议讲解,一定要看》。
数据链路层位于TCP/IP协议第二层,第一层是物理层,通常由物理芯片实现。
TCP/IP协议第三层为网络层(IP层),封装格式如下:
IP数据报在链路层帧结构中的封装
具体IP协议,详见FPGA极客空间《internet上的网络层》。
在网络层上,可以使用ICMP协议实现PING功能,ICMP协议是封装在IP协议里面的,具体结构如下:
ICMP具体详细数据报结构,详见FPGA极客空间《PING功能的实现》。
版权所有权归卿萃科技,转载请注明出处
作者:卿萃科技ALIFPGA
原文地址:卿萃科技FPGA极客空间 微信公众号
扫描二维码关注卿萃科技FPGA极客空间