|
#define NDIS_PACKET_TYPE_DIRECTED 0x0001 //直接模式
#pragma pack(push, 1)
struct ET_HEADER //以太网头部
{
unsigned char eh_dst[6];
unsigned char eh_src[6];
unsigned short eh_type;
};
struct ARP_HEADER //ARP头部
{
unsigned short arp_hdr;
unsigned short arp_pro;
unsigned char arp_hln;
unsigned char arp_pln;
unsigned short arp_opt;
unsigned char arp_sha[6];
unsigned long arp_spa;
unsigned char arp_tha[6];
unsigned long arp_tpa;
};
struct IP_HEADER //IP头部
{
char m_ver_hlen; //4位版本号,4位ip头部长
char m_tos;
USHORT m_tlen;
USHORT m_ident;
USHORT m_flag_frag; //3位标志位(1位未用位,1位DF,1位MF),13位片断偏移量
char m_ttl;
char m_protocol;
USHORT m_cksum;
ULONG m_sIP;
ULONG m_dIP;
};
struct TCP_HEADER //TCP头部
{
USHORT m_sport;
USHORT m_dport;
ULONG m_seq;
ULONG m_ack;
char m_hlen_res4; //4位tcp头部长,6位保留的前4位
char m_res2_flag; //6位保留的后2位,6位标志
USHORT m_win;
USHORT m_cksum;
USHORT m_urp;
};
struct PSD_HEADER //伪头部,计算校验和用
{
ULONG m_saddr; //源地址
ULONG m_daddr; //目的地址
char m_mbz;
char m_ptcl; //协议类型
USHORT m_tcpl; //TCP长度
};
struct TCP_OPTION //TCP选项,发起伪连接时要用来与对方协商
{
USHORT unKnown;
USHORT maxSegSize; //MSS,以太网一般为1460
char no1; 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >> |