1. TCP三次握手过程

  • 最开始双方都是CLOSED关闭状态。然后服务端开启监听某个端口,进入LISTEN状态。
  • 客户端发起请求,发送SYN,客户端变为SYN_SENT(同步消息发送)状态
  • 服务端收到SYN请求,返回一个SYNACK,变为SYN_REVD(同步消息接收)状态

当客户端收到服务器返回的的SYNACK之后,即可知道服务器能够正常接收

  • 客户端收到服务端返回的消息,再向服务端返回一个ACK,开始变为ESTABLISHED状态

当服务器收到客户端发来的ACK后,服务端才能知道客户端能够正常接收

  • 服务端收到客户端传来的ACK之后,变为ESTABLISHED状态,连接建立

2. 抓包分析

使用wireshark 进行抓包

可以看到

  1. 6523请求和80端口建立连接,发送SYN,此时的Seq= 0
  2. 80端口向6523返回一个SYNACK,此时的的Seq=0,Ack为80端口发送的Seq + 1,值为1
  3. 6523接收到80端口的SYNACK之后,向80端口再发送一个ACK,此时的Seq = 1,Ack = 1。三次握手完成,连接建立。

3.为什么不能是两次握手

如果只进行两次握手的话,服务端不知道客户端能否正常接收消息。
是为了防止已经失效的连接请求报文突然又传到了服务端,假设没有第三次握手,连接将被建立,进而浪费资源。

TCP三次握手抓包分析相关推荐

  1. linux过滤端口抓包_TCP 协议三次握手抓包分析amp;查看状态

    关注爱因诗贤每天进步一点点导读 前面文章介绍了 TCP 报文头部的格式,TCP 协议是一个面向连接的协议,所以在使用 TCP 协议之前需要先建立连接,而建立连接就需要先 握手,在握手的时候就会有 TC ...

  2. TCP三次握手抓包观察实战篇

    使用wireshark进行抓包,发现三个包有非常明显的三次握手的特征, syn syn + ack ack 但是还不能确定.所以打算通过seq num和ack num进行验证. 通过以下三步基本可以认 ...

  3. TCP三次握手中SYN,ACK,seq ack的含义

    TCP三次握手中SYN,ACK,seq ack的含义 1.TCP 为什么三次握手而不是两次握手 1.防止已失效的连接请求又传送到服务器端,因而产生错误. 不幸的是, 这种解释是不准确的, TCP 采用 ...

  4. TCP三次握手代码分析与过程跟踪

    https://www.cnblogs.com/luoyang712/p/12099983.html 1.内核TCP三次握手代码分析 首先客户端调用connect主动发起连接 SYSCALL_DEFI ...

  5. Wireshark抓取TCP三次握手包

    TCP三次握手 TCP协议是一个我们每天都在使用的网络通讯协议,因为绝大部分的网络连接都是建立在TCP协议上的,比如你此刻正在看的这篇文章是建立在HTTP应用层协议的基础上的,而HTTP协议的底层则是 ...

  6. TCP 三次握爪 四次挥手

    TCP三次握手和四次挥手过程 1.三次握手 (1)三次握手的详述 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向 ...

  7. wireshark三次握手抓包

    一,抓包 以搜狐为例,百度地址www.souhu.com,我们先查看一下搜狐的ip 用wireshark过滤出搜狐的ip 在浏览器中访问搜狐的域名 看到了成功抓取到了tcp的三次握手 二,分析 第一次 ...

  8. TCP三次握手中,为什么需要第三次握手?

    为什么客户端A还要发送一次确认呢?(为什么需要第三次握手) 这主要是为了防止已失效的连接请求报文段突然又传送到了B(服务器端),因而产生错误. 所谓"已失效的连接请求报文段"是这样 ...

  9. TCP 三次握手、四手挥手,这样说你能明白吧!

    TCP协议全称为:Transmission Control Protocol,是一种面向链接.保证数据传输安全.可靠的数据传输协议.为了确保数据的可靠传输,不仅需要对发出的每个字节进行编号确认,还需要 ...

最新文章

  1. Django 运行 runserver 端口占用,报错:Errno 10013
  2. wxWidgets:wxMemoryFSHandler类用法
  3. Springcloud中的region和zone的使用
  4. WinAPI: PolylineTo - 绘制一组连续线段(更新当前位置)
  5. NoSQL数据库--简介
  6. math、numpy、pandas NaN 判断
  7. 解决body设置height:100%无效问题
  8. 记录:mysql 字符串拼接函数
  9. 数论入门符号_大符号入门指南第2部分
  10. ACM竞赛入门分析与学习资源总结
  11. 弘辽科技:想要利用直通车打造爆款,这个技巧一定要把握
  12. mysql 索引失效的7种情况
  13. Java面向对象 - String类
  14. MacOS查看DNS服务器地址
  15. 提高办公协同效率,Tracup可能是最好的选择
  16. 机器学习10大经典算法详解
  17. 【webrtc】nack
  18. G722 Series Intro
  19. 中科院计算所VIPL实验室2篇AAAI 2020论文导读
  20. 头歌平台 --- 机器学习 --- 高斯混合聚类

热门文章

  1. Linux 安装指定版本GCC方法
  2. c语言乘方程序,c语言乘方(c语言乘方表示)
  3. 【Multisim仿真】同相比例运算放大电路仿真实验
  4. 【转贴】北大一牛人写的爆强失恋诗
  5. Python之HTML解析方法
  6. 周年庆标语(如果采纳,我就留下)
  7. Java ElasticSearch:(五)ElasticSearch 中的 mapping 问题
  8. 非酋用计算机弹唱,·181· 《非酋》弹唱谱
  9. OpenCASCADE BRep vs. OpenNURBS BRep
  10. 吉林大学计算机邵帅,吉林大学获ACM-ICPC世界总决赛历史最好成绩