关于tcp/ip三次握手的理解和详细分析

实例,通过http文件下载来分析tcp/ip三次握手的机制

在百度里面搜索QQ,进行下载,然后对数据包流程进行分析

抓包数据如下,

三次握手过程分析

(此处为描述方便,将A=192.168.0.152,B=61.158.251.62)

三次握手流程原理

1. (A) –> [SYN] –> (B)  客户机A和服务器B通讯. 当A要和B通信时,A首先向B发一个SYN (Synchronize) 标记的包,告诉B请求建立连接.  注意: 一个 SYN包就是仅SYN标记设为1的TCP包(参见TCP包头Resources). 认识到这点很重要,只有当B受到A发来的SYN包,才可建立连接,除此之外别无他法。因此,如果你的防火墙丢弃所有的发往外网接口的SYN包,那么你将不能让外部任何主机主动建立连接。    2. (B) <– [SYN/ACK] <–(A)  接着,B收到后会发一个对SYN包的确认包(SYN/ACK)回去,表示对第一个SYN包的确认,并继续握手操作.  注意: SYN/ACK包是仅SYN 和 ACK 标记为1的包.    3. (A) –> [ACK] –> (B)  A收到SYN/ACK 包,A发一个确认包(ACK),通知B连接已建立。至此,三次握手完成,一个TCP连接完成  Note: ACK包就是仅ACK 标记设为1的TCP包. 需要注意的是当三此握手完成、连接建立以后,TCP连接的每个包都会设置ACK位 

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21391.html