TCP三次握手报文 实例详解&&syn flood C/C++ 完整代码实现

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

第一次握手:

建立连接时,客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:

服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:

客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据.

TCP报文结构图:


以下是我用wireshark抓的自己写的TCP C/S的三次握手包,三个tcp包(包含了物理帧+IP头+TCP头):(这操蛋的排版,我决定忽视这个问题了)

1
0000   48 5b 39 e9 e5 c0 b8 70 f4 1c c3 0808 00 45 00  

        以颜色为单位,分别是物理帧下的目的MAC,源MAC,协议类型(0800是IP协议)


0010   00 34 21 52 40 00 80 06 78 a4 73 9b 3c be73 9b  

        IP段我挑着解释,毕竟不是本文的重点,若读者有兴趣,可以去看我解释ICMP的那篇文章

        还是以颜色为单位,发送者IP(伪造后别人就很难追查了),目的IP

0020  3c d9 0c 2a

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值