数据链路层
数据链路层分为MAC和LLC,MAC是寻址用的,LLC是差错及流量控制用的
1.HDLC:(面向比特)
标志|地址|控制|信 息|帧检验序列|标志
比特: 8 | 8 | 8 |可 变| 16 | 8
缩写: F | A | C| Info | FCS | F
比特: 8 | 8 | 8 |可 变| 16 | 8
缩写: F | A | C| Info | FCS | F
2.PPP:(面向字符)
标志|地址|控制|协议|信 息|帧检验序列|标志
比特: 8 | 8 | 8 |16 |可 变 | 16 | 8
缩写: F | A | C |协议 | Info | FCS | F
注:PPP信息字段不超过1500字节;地址字段 A 只置为 0xFF。地址字段实际上并不起什么作用;控制字段 C 通常置为 0x03;PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节(因为它不是面向比特的)。
3. Ethernet数据帧:
3.1 DIX Ethernet V2 :
前序 |目的地址|源地址|类型|数据 |FCS
字节:8 | 6 | 6 | 2 |46~1500| 4
3.2 IEEE 的 802.3 /802.2LLC
前序 |帧起始界定符|目的地址|源地址|长度|DSAP|SSAP|控制|数据 |FCS
字节:7 | 1 | 6 | 6 | 2 | 1 | 1 | 1 |43~1497| 4
4.SDLC:
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8~16| 8 ~16|可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
比特: 8 | 8~16| 8 ~16|可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
5.
LAPB:
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8 | 8 ~16|可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
比特: 8 | 8 | 8 ~16|可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
6.LAPD:(与LPAB一样适用于ISDN)
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8 | 8 |可 变 | 16 | 8
比特: 8 | 8 | 8 |可 变 | 16 | 8
7.LAPF:(用于帧中继)
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8 | 8 |可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
比特: 8 | 8 | 8 |可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
8.帧中继:
标志 |地址 |信 息|帧检验序列|标志
比特: 8 | 16 |可 变 | 16 | 8
缩写: F | A | Info | FCS | F
比特: 8 | 16 |可 变 | 16 | 8
缩写: F | A | Info | FCS | F
网络层
enum nl_prototype
{
NLType_IPV4 =1,//0x0800
NLType_ARP =2,//0x0806
NLType_RARP =4,//0x8035
NLType_ETHERTALK =8,//0x809B
NLType_PPP =9,//0x880B
NLType_PPPoEDS=10,//0x8863
NLType_PPPoESS=11,//0x8864
NLType_SNMP =14,//0x814C
NLType_IPV6 =64 //0x86DD
{
NLType_IPV4 =1,//0x0800
NLType_ARP =2,//0x0806
NLType_RARP =4,//0x8035
NLType_ETHERTALK =8,//0x809B
NLType_PPP =9,//0x880B
NLType_PPPoEDS=10,//0x8863
NLType_PPPoESS=11,//0x8864
NLType_SNMP =14,//0x814C
NLType_IPV6 =64 //0x86DD
NLType_OTHER =1000,//unknow
}
}
运输层
enum
{
IPPROTO_IP = 0, /* Dummy protocol for TCP. */
#define IPPROTO_IP IPPROTO_IP
IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */
#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */
#define IPPROTO_ICMP IPPROTO_ICMP
IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */
#define IPPROTO_IGMP IPPROTO_IGMP
IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94). */
#define IPPROTO_IPIP IPPROTO_IPIP
IPPROTO_TCP = 6, /* Transmission Control Protocol. */
#define IPPROTO_TCP IPPROTO_TCP
IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */
#define IPPROTO_EGP IPPROTO_EGP
IPPROTO_PUP = 12, /* PUP protocol. */
#define IPPROTO_PUP IPPROTO_PUP
IPPROTO_UDP = 17, /* User Datagram Protocol. */
#define IPPROTO_UDP IPPROTO_UDP
IPPROTO_IDP = 22, /* XNS IDP protocol. */
#define IPPROTO_IDP IPPROTO_IDP
IPPROTO_TP = 29, /* SO Transport Protocol Class 4. */
#define IPPROTO_TP IPPROTO_TP
IPPROTO_IPV6 = 41, /* IPv6 header. */
#define IPPROTO_IPV6 IPPROTO_IPV6
IPPROTO_ROUTING = 43, /* IPv6 routing header. */
#define IPPROTO_ROUTING IPPROTO_ROUTING
IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */
#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
IPPROTO_RSVP = 46, /* Reservation Protocol. */
#define IPPROTO_RSVP IPPROTO_RSVP
IPPROTO_GRE = 47, /* General Routing Encapsulation. */
#define IPPROTO_GRE IPPROTO_GRE
IPPROTO_ESP = 50, /* encapsulating security payload. */
#define IPPROTO_ESP IPPROTO_ESP
IPPROTO_AH = 51, /* authentication header. */
#define IPPROTO_AH IPPROTO_AH
IPPROTO_ICMPV6 = 58, /* ICMPv6. */
#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
IPPROTO_NONE = 59, /* IPv6 no next header. */
#define IPPROTO_NONE IPPROTO_NONE
IPPROTO_DSTOPTS = 60, /* IPv6 destination options. */
#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
IPPROTO_MTP = 92, /* Multicast Transport Protocol. */
#define IPPROTO_MTP IPPROTO_MTP
IPPROTO_ENCAP = 98, /* Encapsulation Header. */
#define IPPROTO_ENCAP IPPROTO_ENCAP
IPPROTO_PIM = 103, /* Protocol Independent Multicast. */
#define IPPROTO_PIM IPPROTO_PIM
IPPROTO_COMP = 108, /* Compression Header Protocol. */
#define IPPROTO_COMP IPPROTO_COMP
IPPROTO_SCTP = 132, /* Stream Control Transmission Protocol. */
#define IPPROTO_SCTP IPPROTO_SCTP
IPPROTO_RAW = 255, /* Raw IP packets. */
#define IPPROTO_RAW IPPROTO_RAW
IPPROTO_MAX
};
{
IPPROTO_IP = 0, /* Dummy protocol for TCP. */
#define IPPROTO_IP IPPROTO_IP
IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */
#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
IPPROTO_ICMP = 1, /* Internet Control Message Protocol. */
#define IPPROTO_ICMP IPPROTO_ICMP
IPPROTO_IGMP = 2, /* Internet Group Management Protocol. */
#define IPPROTO_IGMP IPPROTO_IGMP
IPPROTO_IPIP = 4, /* IPIP tunnels (older KA9Q tunnels use 94). */
#define IPPROTO_IPIP IPPROTO_IPIP
IPPROTO_TCP = 6, /* Transmission Control Protocol. */
#define IPPROTO_TCP IPPROTO_TCP
IPPROTO_EGP = 8, /* Exterior Gateway Protocol. */
#define IPPROTO_EGP IPPROTO_EGP
IPPROTO_PUP = 12, /* PUP protocol. */
#define IPPROTO_PUP IPPROTO_PUP
IPPROTO_UDP = 17, /* User Datagram Protocol. */
#define IPPROTO_UDP IPPROTO_UDP
IPPROTO_IDP = 22, /* XNS IDP protocol. */
#define IPPROTO_IDP IPPROTO_IDP
IPPROTO_TP = 29, /* SO Transport Protocol Class 4. */
#define IPPROTO_TP IPPROTO_TP
IPPROTO_IPV6 = 41, /* IPv6 header. */
#define IPPROTO_IPV6 IPPROTO_IPV6
IPPROTO_ROUTING = 43, /* IPv6 routing header. */
#define IPPROTO_ROUTING IPPROTO_ROUTING
IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */
#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
IPPROTO_RSVP = 46, /* Reservation Protocol. */
#define IPPROTO_RSVP IPPROTO_RSVP
IPPROTO_GRE = 47, /* General Routing Encapsulation. */
#define IPPROTO_GRE IPPROTO_GRE
IPPROTO_ESP = 50, /* encapsulating security payload. */
#define IPPROTO_ESP IPPROTO_ESP
IPPROTO_AH = 51, /* authentication header. */
#define IPPROTO_AH IPPROTO_AH
IPPROTO_ICMPV6 = 58, /* ICMPv6. */
#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
IPPROTO_NONE = 59, /* IPv6 no next header. */
#define IPPROTO_NONE IPPROTO_NONE
IPPROTO_DSTOPTS = 60, /* IPv6 destination options. */
#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
IPPROTO_MTP = 92, /* Multicast Transport Protocol. */
#define IPPROTO_MTP IPPROTO_MTP
IPPROTO_ENCAP = 98, /* Encapsulation Header. */
#define IPPROTO_ENCAP IPPROTO_ENCAP
IPPROTO_PIM = 103, /* Protocol Independent Multicast. */
#define IPPROTO_PIM IPPROTO_PIM
IPPROTO_COMP = 108, /* Compression Header Protocol. */
#define IPPROTO_COMP IPPROTO_COMP
IPPROTO_SCTP = 132, /* Stream Control Transmission Protocol. */
#define IPPROTO_SCTP IPPROTO_SCTP
IPPROTO_RAW = 255, /* Raw IP packets. */
#define IPPROTO_RAW IPPROTO_RAW
IPPROTO_MAX
};
来自linux下的include <netinet/in.h>