ethernet,ip,tcp结构<备份记忆>

转载 2012年03月22日 20:55:05

从我的网易博客移动


struct sniff_ethernet {

u_char ether_dhost[ETHER_ADDR_LEN]; /* 目的主机的地址 */
u_char ether_shost[ETHER_ADDR_LEN]; /* 源主机的地址 */
u_short ether_type; /* IP? ARP? RARP? etc */
};
/* IP数据包的头部 */
struct sniff_ip {
#if BYTE_ORDER == LITTLE_ENDIAN
u_int ip_hl:4, /* 头部长度 */
ip_v:4; /* 版本号 */
#if BYTE_ORDER == BIG_ENDIAN
u_int ip_v:4, /* 版本号 */
ip_hl:4; /* 头部长度 */
#endif
#endif /* not _IP_VHL */
u_char ip_tos; /* 服务的类型 */
u_short ip_len; /* 总长度 */
u_short ip_id; /*包标志号 */
u_short ip_off; /* 碎片偏移 */
#define IP_RF 0x8000 /* 保留的碎片标志 */
#define IP_DF 0x4000 /* dont fragment flag */
#define IP_MF 0x2000 /* 多碎片标志*/
#define IP_OFFMASK 0x1fff /*分段位 */
u_char ip_ttl; /* 数据包的生存时间 */
u_char ip_p; /* 所使用的协议 */
u_short ip_sum; /* 校验和 */
struct in_addr ip_src,ip_dst; /* 源地址、目的地址*/
};
/* TCP 数据包的头部 */
struct sniff_tcp {
u_short th_sport; /* 源端口 */
u_short th_dport; /* 目的端口 */
tcp_seq th_seq; /* 包序号 */
tcp_seq th_ack; /* 确认序号 */
#if BYTE_ORDER == LITTLE_ENDIAN
u_int th_x2:4, /* 还没有用到 */
th_off:4; /* 数据偏移 */
#endif
#if BYTE_ORDER == BIG_ENDIAN
u_int th_off:4, /* 数据偏移*/
th_x2:4; /*还没有用到 */
#endif
u_char th_flags;
#define TH_FIN 0x01
#define TH_SYN 0x02
#define TH_RST 0x04
#define TH_PUSH 0x08
#define TH_ACK 0x10
#define TH_URG 0x20
#define TH_ECE 0x40
#define TH_CWR 0x80
#define TH_FLAGS (TH_FIN|TH_SYN|TH_RST|TH_ACK|TH_URG|TH_ECE|TH_CWR)
u_short th_win; /* TCP滑动窗口 */
u_short th_sum; /* 头部校验和 */
u_short th_urp; /* 紧急服务位 */
};

/*TCP头*/
typedef u_int tcp_seq;
struct sniff_tcp
{
u_short th_sport;
u_short th_dport;
tcp_seq th_seq;
tcp_seq th_ack;
u_char th_offx2;
u_char th_flags;
u_short th_win;
u_short th_sum;
u_short th_urp;
};
/*UDP报头*/
struct sniff_udp
{
u_short udp_sport;
u_short udp_dport;
u_short udp_len;
u_short udp_sum;
};
/*DNS报头*/
struct sniff_dns
{
u_short dns_id;
u_short dns_flag;
u_short dns_ques;
u_short dns_ans;
u_short dns_auth;

u_short dns_add;
u_int8_t *dsn_data;
};


sniff编写入门

Programming with pcapTim Carstenstimcarst at yahoo dot comThe latest version of this document can be...
  • dba2007
  • dba2007
  • 2007年03月15日 11:45
  • 1025

ethernet,ip,tcp结构<备份记忆>

转自 : http://blog.csdn.net/fengyun1989/article/details/7384866 struct sniff_ethernet { u_ch...
  • xiaoxianerqq
  • xiaoxianerqq
  • 2016年11月16日 09:49
  • 99

EtherNet/IP工业以太网协议白皮书

DeviceNet™设备网和ControlNet™控制网已经是广为人知的工业网络,分别归ODVA(开放DeviceNet供应商协会)和ControlNet International两家国际性制造商组...
  • wcycn
  • wcycn
  • 2016年08月12日 14:49
  • 1391

各种工业以太网比较(EtherCAT,EtherNet/IP,ProfiNet,Modbus-TCP,Powerlink)

EtherCAT(以太网控制自动化技术)是一个以以太网为基础的开放架构的现场总线系统,EterCAT名称中的CAT为ControlAutomation Technology(控制自动化技术)首字母...
  • xqmoo8
  • xqmoo8
  • 2014年10月02日 23:53
  • 24640

Ethernet、Tcp、Udp等协议的数据包格式

TCP/IP协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以太网上TCP/IP协议的分层结构及其报文格式。我们知道TCP/IP协议采用分层结构,其分层模型及协议...
  • ruixj
  • ruixj
  • 2010年03月12日 15:42
  • 11240

TCP/IP栈结构

TCP/IP体系结构 注:
  • u013686019
  • u013686019
  • 2014年05月01日 17:34
  • 1016

学习整理——以太帧、ip帧、udp/tcp帧、http报文结构

从最简单的一个http请求开发,根据TCP/IP协议,分开来看每一层的数据帧结构,以及它们是怎样承担起网络服务得。 协议栈 因特网协议栈共有五层: 1.应用层,是网络应用程序及其应用层协议存留的地方。...
  • Jeffery_Gong
  • Jeffery_Gong
  • 2016年04月28日 09:56
  • 15726

TCP/IP报文头部结构整理

IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。 优点:简单,高效。 无状态指:IP通信双方不同步传输数据的状态信息,所有的IP数据报的传输都是独立的。所以容易发...
  • ythunder
  • ythunder
  • 2017年03月25日 19:47
  • 4057

TCP/IP各种数据包结构体

原文地址:TCP/IP各种数据包结构体作者:tota2004 下面这些TCP/IP数据包是我在进行Socket及Wipcap网络编程过程中曾经用到过的数据包结构体, 这些东西平时看起来不起眼...
  • whizchen
  • whizchen
  • 2015年03月10日 01:08
  • 1214

PROFINET与以太网之间的关系?

PROFINET与以太网之间的关系?     过去,工业以太网是自动化领域控制层和管理层的主要网络类型之一,用于连接PLC和PLC或者PLC和上位机。这仅仅提到的是连接网络的物理介质,即工业以太网。...
  • happypolo
  • happypolo
  • 2012年03月14日 10:12
  • 9558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ethernet,ip,tcp结构<备份记忆>
举报原因:
原因补充:

(最多只允许输入30个字)