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

简介:

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

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

抓包数据如下,

三次握手过程分析

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

三次握手流程原理


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

三次握手数据包建立过程

 


 
 
  1. 1:A向B发起连接请求,以一个随机数初始化A的seq,这里为2439693833,此时ACK=0 
  2. 2:B收到A的连接请求后,也以一个随机数初始化B的seq,这里为1107428100,
  3. 意思是:你的请求我已收到,我这方的数据流就从这个数开始。B的ACK是A的seq加1,
  4. 即2439693833 + 1 = 2439693834 
  5. 3:A收到B的回复后,它的seq是A的上一个seq+1,即 2439693833+1=2439693834,同时也是B的ack序列号,即2439693834
  6. 意思也是:B的回复A收到了,A这方的数据流就从这个数开始。A此时的ACK是B的seq加1,
  7. 即1107428100+1=1107428101 
下面对各数据包进行详细分析

seq为2439693833,此时的ack为0

 ack的标示为1的tcp包

 

 

至此,三次握手建立完毕。

下面开始tcp数据传输了

 http协议中的GET请求

 

 

 

 http协议中的200代码,标示建立成功

tcp数据传输第二阶段

 

 以上为简单的协议分析,如有谬误,请多多指教

感谢杭州 -Daemon

已经修改为正确的了,谢谢指正!


本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/925597,如需转载请自行联系原作者

 

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
机器学习/深度学习 人工智能 网络协议
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
380 4
|
缓存 网络协议 安全
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP通信机制:三次握手、四次挥手、滑动窗口
1263 1
TCP通信机制:三次握手、四次挥手、滑动窗口
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
大家好,我是阿萨。昨天讲解了网络四层协议[TCP/IP协议族分为哪4层?]今天我们学习下IP 协议, TCP 协议和DNS 协议分别是干什么的。
481 0
IP协议, TCP协议 和DNS 服务分别是干什么的?
|
监控 网络协议 网络架构
IP协议【图解TCP/IP(笔记九)】
IP协议【图解TCP/IP(笔记九)】
471 0
|
网络协议 网络架构
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
|
网络协议
TCP/IP协议族有哪些?
大家好,我是阿萨。昨天我们学习了[URI 和URL 的区别是什么?]了解了URI 和URL的区别。 学习HTTP, 绕不开TCP/IP,那么TCP/IP 协议族分为哪4层?
454 0
TCP/IP协议族有哪些?
|
缓存 网络协议 安全
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
|
网络协议 网络性能优化 网络安全
网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解(2)
网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解(2)
网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解(2)
|
域名解析 网络协议 安全
网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解(1)
网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解(1)
网络协议报文理解刨析篇二(再谈Http和Https), 加上TCP/UDP/IP协议分析(理解着学习), 面试官都惊讶你对网络的见解(1)
|
网络协议 算法 网络性能优化
网络入门基础模型, 网络大体框架, TCP/IP协议栈, 各种局域网和广域网刨析 (以图解的方式推开网络大门)
网络入门基础模型, 网络大体框架, TCP/IP协议栈, 各种局域网和广域网刨析 (以图解的方式推开网络大门)
网络入门基础模型, 网络大体框架, TCP/IP协议栈, 各种局域网和广域网刨析 (以图解的方式推开网络大门)

热门文章

最新文章