课程名称 计算机网络实验
题目名称 分析TCP三次握手
学生学院 计算机学院
2014 年01 月 05 日
实验目的
TCP 是可靠的传输,在通信之前要通过三次握手建立链接。通过实验掌握 TCP 三次握手的过程。
实验原理id OnItemchangingListShowShakeHand(NMHDR *pNMHDR, LRESULT *pResult);
int initCap();
int startCap();
int updateTree(int index);
int ShowSHPk t(in t seq, int index, int group);
-ListOperation-Cpp
Ptr_Analysis_ListAddNote(intseq,intack,intposition,Ptr_Analysis_Listhead);
『void DeleteAlJNote(Ptr_Analysis_List head);
p
int analyze_frame(const u_char * pkt,struct datapkt * data, struct pktcount *npakcet);
int analyze_ip(const u_char* pkt, struct datapkt *data, struct pktcount *npakcet) ; int analyze_ip6(const u_char* pkt, struct datapkt *data, struct pktcount
*npakcet);
int analyze_tcp(const u_char* pkt, struct datapkt *data, struct pktcount
六、
*npakcet);
4、 捕获数据包流程
1、协议头文件
//Mac 帧头占 14 个字节
typedef struct ethhdr {
u_char dest[6];
u_char src[6]; u_short type;
};
//6 个字节 目标地址
//6 个字节 源地址
//2 个字节 类型
//定义IP头
typedef struct iphdr
{
#if defined(LITTLE_ENDIAN)
u_char ihl:4; //首部长度
u_char version:4;
#elif defined(BIG_ENDIAN)
u_char version:4; u_char ihl:4;
#endif
u_char tos; u_short tlen; u_short id; u_short frag_off; u_char ttl; u_char proto; u_short check; u_int saddr; u_int daddr; u_int op_pad;
};
//TOS 服务类型
//包总长 u_short 占两个字节 //标识
// 片位移
// 生存时间
//协议
// 校验和
//源地址
//目的地址
// 选项等
//定义TCP头
//源端口地址 16 位
//目的端口地址 //序号 32 位 //确认序号
typedef struct tcphdr {
u_short sport; u_short dport; u_int seq;
u_int ack_seq;
#if defined(LITTLE_ENDIAN)
u_short rest1:4, doff:4, fin:1, syn:1, rst:1, psh:1, ack:1, urg:1, rest2:2;
#elif defined(BIG_ENDIAN) u_short doff:4, rest1:4, rest2:2, urg:1, ack:1, psh:1, rst:1, syn:1,
fin:1;
#endif
u_short window; u_short check;
u_short urg_ptr; u_int opt;
};
//窗口大小 16 位
//检验和 16 位 //紧急指针 //选项
//定义 IPv6
typedef struct iphdr6
{
//#if defined(BIG_ENDIAN) u_int version:4, flow
抓包及TCP三次握手分析 来自淘豆网m.daumloan.com转载请标明出处.