首页 > 其他分享 >以太网帧结构

以太网帧结构

时间:2023-06-01 10:36:10浏览次数:38  
标签:DEC packet 以太网 frames ETH 结构 ID define

struct ethhdr { 

unsigned char 
  h_dest[ETH_ALEN]; 
 /* destination eth addr 
 */ 

unsigned char 
  h_source[ETH_ALEN]; 
 /* source ether addr 
 */ 

__be16 
  h_proto; 
 /* packet type ID field 
 */ 

 } __attribute__((packed)); 

/* 协议ID,即h_proto可使用的值
  * These are the defined Ethernet Protocol ID's.
  */


 #define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */
 #define ETH_P_PUP 0x0200 /* Xerox PUP packet */
 #define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */
 #define ETH_P_TSN 0x22F0 /* TSN (IEEE 1722) packet */
 #define ETH_P_IP 0x0800 /* Internet Protocol packet */
 #define ETH_P_X25 0x0805 /* CCITT X.25 */
 #define ETH_P_ARP 0x0806 /* Address Resolution packet */
 #define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
 #define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
 #define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */
 #define ETH_P_BATMAN 0x4305 /* B.A.T.M.A.N.-Advanced packet [ NOT AN OFFICIALLY REGISTERED ID ] */
 #define ETH_P_DEC       0x6000          /* DEC Assigned proto           */
 #define ETH_P_DNA_DL    0x6001          /* DEC DNA Dump/Load            */
 #define ETH_P_DNA_RC    0x6002          /* DEC DNA Remote Console       */
 #define ETH_P_DNA_RT    0x6003          /* DEC DNA Routing              */
 #define ETH_P_LAT       0x6004          /* DEC LAT                      */
 #define ETH_P_DIAG      0x6005          /* DEC Diagnostics              */
 #define ETH_P_CUST      0x6006          /* DEC Customer use             */
 #define ETH_P_SCA       0x6007          /* DEC Systems Comms Arch       */
 #define ETH_P_TEB 0x6558 /* Trans Ether Bridging */
 #define ETH_P_RARP      0x8035 /* Reverse Addr Res packet */
 #define ETH_P_ATALK 0x809B /* Appletalk DDP */
 #define ETH_P_AARP 0x80F3 /* Appletalk AARP */
 #define ETH_P_8021Q 0x8100          /* 802.1Q VLAN Extended Header  */
 #define ETH_P_IPX 0x8137 /* IPX over DIX */
 #define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */
 #define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */
 #define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */
 #define ETH_P_WCCP 0x883E /* Web-cache coordination protocol
* defined in draft-wilson-wrec-wccp-v2-00.txt */
 #define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */
 #define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */
 #define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */
 #define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages     */
 #define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */
 #define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */
 #define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport
* over Ethernet
*/
 #define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */
 #define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
 #define ETH_P_8021AD 0x88A8          /* 802.1ad Service VLAN */
 #define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1.  */
 #define ETH_P_TIPC 0x88CA /* TIPC */
 #define ETH_P_MACSEC 0x88E5 /* 802.1ae MACsec */
 #define ETH_P_8021AH 0x88E7          /* 802.1ah Backbone Service Tag */
 #define ETH_P_MVRP 0x88F5          /* 802.1Q MVRP                  */
 #define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
 #define ETH_P_PRP 0x88FB /* IEC 62439-3 PRP/HSRv0 */
 #define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet  */
 #define ETH_P_TDLS 0x890D          /* TDLS */
 #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
 #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
 #define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */
 #define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */
 #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
 #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
 #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
 #define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
 #define ETH_P_AF_IUCV   0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */


 #define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value
* then the frame is Ethernet II. Else it is 802.3 */


 /*
  * Non DIX types. Won't clash for 1500 types.
  */


 #define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames  */
 #define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25  */
 #define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */
 #define ETH_P_802_2 0x0004 /* 802.2 frames */
 #define ETH_P_SNAP 0x0005 /* Internal only */
 #define ETH_P_DDCMP     0x0006          /* DEC DDCMP: Internal only     */
 #define ETH_P_WAN_PPP   0x0007          /* Dummy type for WAN PPP frames*/
 #define ETH_P_PPP_MP    0x0008          /* Dummy type for PPP MP frames */
 #define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
 #define ETH_P_CAN 0x000C /* CAN: Controller Area Network */
 #define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/
 #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
 #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
 #define ETH_P_MOBITEX 0x0015 /* Mobitex ([email protected]) */
 #define ETH_P_CONTROL 0x0016 /* Card specific control frames */
 #define ETH_P_IRDA 0x0017 /* Linux-IrDA */
 #define ETH_P_ECONET 0x0018 /* Acorn Econet */
 #define ETH_P_HDLC 0x0019 /* HDLC frames */
 #define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-)            */
 #define ETH_P_DSA 0x001B /* Distributed Switch Arch. */
 #define ETH_P_TRAILER 0x001C /* Trailer switch tagging */
 #define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames          */
 #define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */
 #define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */
 #define ETH_P_XDSA 0x00F8 /* Multiplexed DSA protocol */

标签:DEC,packet,以太网,frames,ETH,结构,ID,define
From: https://blog.51cto.com/u_11860992/6392702

相关文章

  • 初级数据结构--单链表
    继昨天终于明白了成功截图typedefstructLNode{ intdata; structLNode*next;}LNode;boolIsitList(LNode**Head){ *Head=(LNode*)malloc(sizeof(LNode)); if(!*Head) returnfalse; (*Head)->next=NULL; returntrue;}voidListInsert(LNode*L,intval......
  • linux - passwd结构体
     #include<stdio.h>#include<pwd.h>#include<unistd.h>#include<sys/types.h>intmain(){structpasswd*tmp=NULL;tmp=getpwuid(geteuid());printf("username:%s\n",tmp->pw_name);printf("userp......
  • Python判断一个数据结构是否为空的方法
    《EffectivePython》,里面提到判断字符串或者集合是否为空的原则。意思是:不要通过取字符串或者集合的长度来判断是否为空,而是要用not关键字来判断,因为当字符串或集合为空时,其值被隐式地赋为False.test_str=''test_tuple=()test_list=[]test_dict={}test_set=set()ifnot(test......
  • 【数据结构】吉司机线段树
    【数据结构】吉司机线段树(SegmentTreeBeats)吉司机线段树,是由杭州学军中学的吉如一在2016年国集论文当中提出的,解决了区间最值操作和区间历史最值问题。题目描述给出一个长度为\(n\)的数列\(A\),同时定义一个辅助数组\(B\),\(B\)开始与\(A\)完全相同。接下来进行了\(m......
  • C/C++杂记:深入虚表结构
    1.虚表与“虚函数表”在“C/C++杂记:虚函数的实现的基本原理”一文中曾提到“虚函数表”的概念,只是为了便于理解,事实是:虚函数表并不真的独立存在,它只是虚表(virtualtable)中的一部分内容。例:从图中可已看出,虚表除了包含虚函数指针,还包含其它一些信息(如:RTTI信息、偏移值等)。顺便......
  • SimpleAdmin手摸手教学之:基于Ant Design Tree组件实现树形结构数据的异步加载
    一、说明当有一个树形结构的数据有非常多个节点的时候,一次性加载所有节点会显得过于臃肿,可能会对性能造成影响,正好AntDesign的树(Tree)组件支持异步加载,于是我就想把异步加载封装为一个组件,可以减少接口数据返回,点击展开节点,动态加载数据。非常好用!二、前端实现需要接收一些......
  • C/C++数据结构课程设计[2023-05-31]
    C/C++数据结构课程设计[2023-05-31]数据结构课程设计实验(训)指导书所在学院:计算机科学与工程学院编写说明一.实验总体目标《数据结构》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。本实验的目标是,学生能正确理解和熟练掌握常用数据结构和算......
  • 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
    单继承:只有一个基类和一个派生类classBase{public:virtualvoidfun1(){cout<<"Base::func1()"<<endl;}virtualvoidfun2(){cout<<"Base::func2()"<<endl;}private:intb;......
  • 基于第三代测序数据的基因组结构变异检测方法研究
    基于第三代测序数据的基因组结构变异检测方法研究姜涛哈尔滨工业大学摘要:随着测序技术的不断成熟和广泛应用,以测序技术为驱动的基因组、转录组等多组学的研究得到了跨越式发展,推动了基因组科学、遗传学、临床医学等多学科的变革。基因组变异检测作为基因组研究中最为核心......
  • 基于第三代测序数据的结构变异检测方法研究
    基于第三代测序数据的结构变异检测方法研究白若飞北京化工大学摘要:第三代测序技术的飞速发展使人们能够通过少量较长的读段推测个体的完整染色体序列,同时推动了基因变异检测的发展。结构变异的准确检测对人类遗传多样性和临床疾病的研究至关重要。传统研究结构变异的方法是......