网络协议抓包分析——TCP传输控制协议(连接建立、释放)
前言
TCP协议为数据提供可靠的端到端的传输,处理数据的顺序和错误恢复,保证数据能够到达其应到达的地方。TCP协议是面向连接的,在两台主机使用TCP协议进行通信之前,会先建立一个TCP连接(三次握手),双方不再继续通信时,会将连接释放(正常情况下四次挥手)。下面就抓包分析TCP三次握手和四次挥手的过程。
建立连接——三次握手

第一次握手


客户端192.168.1.148发送一个建立TCP连接的请求包给服务器端174.143.213.184。可以从数据包中得出,建立连接源端口为57678,目标端口为80,确认编号为0。同步标志位SYN被置为1,表示请求连接建立。TCP首部长度大于20字节,说明选项中也附带了一些内容,给出最大段长度为1460字节,允许使用选择确认等。
第二次握手


服务器端收到请求后,发送给客户端确认包。该数据包中包含服务器的初始序列号为0,以及对请求包的确认,所以确认号为1也是期望下一个收到的包的字节流编号是从2开始的。
第三次握手


客户端向服务器端发出确认包,序号是从1开始,确认号为1,标志位只有ACK被置为1,说明这是一个确认包。于是便完成TCP连接建立。在这个包发送后,客户端就已将可以向服务器端请求数据,正常通信了。
关闭连接——三次挥手
四次挥手过程
放一张以前做的图介绍TCP四次挥手的过程:

当客户端向服务器端发起连接关闭请求时,因为服务器端还有数据发送给客户端所以不能立马将连接关闭,于是先回复客户端ACK表示你的请求我已经收到。然后将剩下的数据继续发送给客户端,数据发送完毕后,在回复给客户端的ACK包中将FIN标志置为1,请求连接关闭。最后,客户端回复ACK包表示收到服务器端的FIN。服务器端收到此ACK包后立马就关闭连接。客户端继续等待2MSL(因为发送给客户端的ACK包可能会丢失),服务器端没有重传包回来就关闭连接。到此,整个连接算是完全结束。
以上过程是标准的释放过程,但是在实际通信当中,可能只会有三次挥手。当客户端发送FIN包给服务器端,服务器端因为没有数据再传给客户端,于是就会在回复给客户端的FIN的ACK包中将FIN字段置位1,发送给客户端的包就为ACK+FIN,表示我也要求连接关闭。然后,客户端回复一个ACK确认收到FIN+ACK包,服务器端就关闭连接,客户端等待2MSL后也关闭连接。

上图就是三次挥手的数据包截图
第一次挥手


客户端192.168.1.140向服务器端172.143.213.184请求断开连接。
第二次挥手


因为服务器端没有数据传给客户端于是将回复给客户端的ACK包中FIN置为1,表示也请求连接断开。
第三次挥手


客户端对服务器端的FIN+ACK进行回复。服务器端收到该ACK包就关闭连接。
小结
回头想一想TCP为什么是三次握手呢,两次好像也是可以的。但是,这里存在一个问题,网络中的包是会延迟的,如果有一个很久以前的连接请求发送到了服务器端(实际上客户端已经发送了新的连接请求给服务器端,完成了数据请求并且连接已经关闭),服务器端并不知道这是以前的连接请求,于是也会回复一个ACK并且等待客户端的回复。客户收到该ACK不会回复,就会造换成服务器端一直等待并且超时重发ACK包。所以,两次握手是不可以的,四次握手也是显得多余的。三次握手最后一次客户端回复ACK给服务器端,服务器端收到后,才分配资源等待客户端的正式请求。
总结一句话需要三次握手的原因是:为了防止以前的连接请求即失效连接请求发送到服务器而造成错误。
网络协议抓包分析——TCP传输控制协议(连接建立、释放)的更多相关文章
- 网络协议抓包分析——IP互联网协议
前言 IP协议是位于OSI模型的第三层协议,其主要目的就是使得网络间可以相互通信.在这一层上运行的协议不止IP协议,但是使用最为广泛的就是互联网协议. 什么是IP数据报 TCP/IP协议定义了一个在因 ...
- 网络协议抓包分析——ARP地址解析协议
前言 计算机之间可以相互通信的前提是要知道对方的地址,才可以发送信息给其他计算机,就像别人要联系你也得先知道你的电话号码一样.这里的地址因为网络分层的原因就包括IP地址和MAC地址(即网卡地址.硬件地 ...
- wireshark抓包分析——TCP/IP协议
本文来自网易云社区 当我们需要跟踪网络有关的信息时,经常会说"抓包".这里抓包究竟是什么?抓到的包又能分析出什么?在本文中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通 ...
- Wireshark抓包分析TCP 3次握手、4次挥手过程
Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是 ...
- 使用 tcpdump 抓包分析 TCP 三次握手、四次挥手与 TCP 状态转移
目录 文章目录 目录 前文列表 TCP 协议 图示三次握手与四次挥手 抓包结果 抓包分析 TCP 三次握手 数据传输 四次挥手 TCP 端口状态转移 状态转移 前文列表 <常用 tcpdump ...
- Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析
Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...
- Wireshark抓包分析TCP“三次握手,四次挥手”
1.目的 客户端与服务器之间建立TCP/IP连接,我们知道是通过三次握手,四次挥手实现的,但是很多地方对这个知识的描述仅限于理论层面,这次我们通过网络抓包的方式来看一下实际的TCP/IP传输过程. 2 ...
- Java网络编程学习A轮_02_抓包分析TCP三次握手过程
参考资料: https://huoding.com/2013/11/21/299 https://hpbn.co/building-blocks-of-tcp/#three-way-handshake ...
- Wireshark抓包分析/TCP/Http/Https及代理IP的识别
前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...
随机推荐
- Linux进阶命令用法
1.tr命令 可以对来自标准输入的字符进行替换.压缩和删除.它可以将一组字符变成另一组字符 选项 -c或——complerment:取代所有不属于第一字符集的字符: -d或——delete:删除所有属 ...
- Oracle (分类、数据库类型、序列)
分类: 1.DDL (定义语句) create .alter .drop 不需要commit create table aaa( tt1 varchart ) 2. DML (操纵语句) lnset ...
- MySQL之爱之初体验
写在前言:本篇博客从mysql的安装开始说起,至于什么是数据库以及数据的由来什么的,不在详谈!!! 第一:mysql安装 linux安装:两种方式 1.apt安装 apt install mysql- ...
- this全解js
转(掘金) this关键字是JavaScript中最复杂的机制之一,是一个特别的关键字,被自动定义在所有函数的作用域中,但是相信很多JavaScript开发者并不是非常清楚它究竟指向的是什么.听说你很 ...
- Linux 搭建Nginx+uWSGI+Django环境
安装环境 sudo apt-get install nginx sudo apt install python3 sudo apt install python3-pip 使用 sudo pip3 i ...
- insert
(1)INSERT INTO SELECT语句 语句形式为: Insert into Table2(field1,field2,,field3,...) select key1,key2,,key3, ...
- pymongo的操作
实例化和插入 from pymongo import MongoClient class TestMongo: def __init__(self): client = MongoClient(hos ...
- B4 and After: Managing Hierarchy, Partitioning, and Asymmetry for Availability and Scale in Google’s Sofware-Defined WAN
B4及之后:为谷歌软件定义WAN的可用性和扩展管理层次化.划分和不对称 本文为SIGCOMM 2018会议论文,由谷歌提供. 笔者翻译了该论文.由于时间仓促,且笔者英文能力有限,错误之处在所难免:欢迎 ...
- 数据库索引使用数据结构及算法, 及MySQL不同引擎索引实现
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...
- YOU种你来丨i春秋校园行第一站北京电子科技学院
发通告啦 i春秋互联网安全校园行即将火爆开启,第一站我们将来到北京电子科技学院.对网络安全感兴趣的大学生们注意啦,我们将走进校园送福利,Are you ready? i春秋简介 i春秋拥有全国最大的网 ...