您的位置:首页 > 理论基础 > 计算机网络

TCP/IP各种数据包结构体

2015-03-10 01:08 330 查看
原文地址:TCP/IP各种数据包结构体作者:tota2004

下面这些TCP/IP数据包是我在进行Socket及Wipcap网络编程过程中曾经用到过的数据包结构体, 这些东西平时看起来不起眼,真正用到的时候就会觉得非常有用......

以太帧头格式结构体,共14个字节:

  typedef struct ether_header {

   unsigned char ether_dhost[6]; //目的MAC地址

   unsigned char ether_shost[6]; //源MAC地址

   unsigned short ether_type; //协议类型

  }ETHHEADER,*PETHHEADER;

IPv4报头格式结构体,共20个字节:

typedef struct ipv4_header {

unsigned char ver_ihl; //版本 (4 bits) + 首部长度 (4 bits)

unsigned char tos; //服务类型

unsigned short tlen; //数据报总长度

unsigned short identification; //标识

unsigned short flags_fo; //标志 (3 bits) + 片偏移 (13 bits)

unsigned char ttl; //生存时间

unsigned char proto; //协议

unsigned short crc; //首部校验和

u_char ip_src[4]; //源IP地址

u_char ip_dst[4]; //目的IP地址

}IPHEADER,*PIPHEADER;

IPv6报头格式结构体,共40个字节:

typedef struct ipv6_header {

u_char ver_tf; //版本号(4 bit)

u_char traffic; //优先级(8 bit)

u_short label; //流标识(20 bit)

u_char length[2]; //报文长度(16 bit)

u_char next_header; //下一头部(8 bit)

u_char limits; //跳数限制(8 bit)

u_char Srcv6[16]; //源IPv6地址(128 bit)

u_char Destv6[16]; //目的IPv6地址(128 bit)

}IPv6_HEADER,*PIPv6_HEADER;

TCP报头格式结构体,共20个字节:

typedef struct tcp_header {

WORD SourPort; //源端口号  

WORD DestPort; //目的端口号

DWORD SeqNo; //序号

DWORD AckNo; //确认序号

BYTE HLen; //首部长度(保留位)

BYTE Flag; //标识(保留位)

WORD Window; //窗口大小

WORD ChkSum; //校验和

WORD UrgPtr; //紧急指针

}TCPHEADER,*PTCPHEADER;

UDP报头格式结构体,共8个字节:

typedef struct udp_header {

u_short sport; //源端口号

u_short dport; //目的端口号

u_short len; //数据报长度

u_short crc; //校验和

}UDPHEADER,*PUDPHEADER;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: