码迷,mamicode.com
首页 > 其他好文 > 详细

TCP/IP协议头部结构体

时间:2014-09-15 21:08:49      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   div   art   代码   log   

http://blog.csdn.net/ithomer/article/details/5662383

IP和TCP都20字节,IP存放地址,TCP存放端口。TCP还存放一些用于TCP特定协议的内容,序列号、确认号

// i386 is little_endian.
#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN   (1)   //BYTE ORDER
#else
#error Redefine LITTLE_ORDER
#endif
//Mac头部,总长度14字节
typedef struct _eth_hdr
{
	unsigned char dstmac[6]; //目标mac地址
	unsigned char srcmac[6]; //源mac地址
	unsigned short eth_type; //以太网类型
}eth_hdr;
//IP头部,总长度20字节
typedef struct _ip_hdr
{
	#if LITTLE_ENDIAN
	unsigned char ihl:4;     //首部长度
	unsigned char version:4, //版本 
	#else
	unsigned char version:4, //版本
	unsigned char ihl:4;     //首部长度
	#endif
	unsigned char tos;       //服务类型
	unsigned short tot_len;  //总长度
	unsigned short id;       //标志
	unsigned short frag_off; //分片偏移
	unsigned char ttl;       //生存时间
	unsigned char protocol;  //协议
	unsigned short chk_sum;  //检验和
	struct in_addr srcaddr;  //源IP地址
	struct in_addr dstaddr;  //目的IP地址
}ip_hdr;
//TCP头部,总长度20字节
typedef struct _tcp_hdr
{
	unsigned short src_port;    //源端口号
	unsigned short dst_port;    //目的端口号
	unsigned int seq_no;        //序列号
	unsigned int ack_no;        //确认号
	#if LITTLE_ENDIAN
	unsigned char reserved_1:4; //保留6位中的4位首部长度
	unsigned char thl:4;        //tcp头部长度
	unsigned char flag:6;       //6位标志
	unsigned char reseverd_2:2; //保留6位中的2位
	#else
	unsigned char thl:4;        //tcp头部长度
	unsigned char reserved_1:4; //保留6位中的4位首部长度
	unsigned char reseverd_2:2; //保留6位中的2位
	unsigned char flag:6;       //6位标志 
	#endif
	unsigned short wnd_size;    //16位窗口大小
	unsigned short chk_sum;     //16位TCP检验和
	unsigned short urgt_p;      //16为紧急指针
}tcp_hdr;
//UDP头部,总长度8字节
typedef struct _udp_hdr
{
	unsigned short src_port; //远端口号
	unsigned short dst_port; //目的端口号
	unsigned short uhl;      //udp头部长度
	unsigned short chk_sum;  //16位udp检验和
}udp_hdr;
//ICMP头部,总长度4字节
typedef struct _icmp_hdr
{
	unsigned char icmp_type;   //类型
	unsigned char code;        //代码
	unsigned short chk_sum;    //16位检验和
}icmp_hdr; 

  

TCP/IP协议头部结构体

标签:blog   http   io   os   ar   div   art   代码   log   

原文地址:http://www.cnblogs.com/notlate/p/3973454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!