TCP三次握手与Tcpdump抓包分析过程

一、TCP连接建立(三次握手)

过程

客户端A,服务器B,初始序号seq,确认号ack

初始状态:B处于监听状态,A处于打开状态

  • A -> B : seq = x (A向B发送连接请求报文段,A进入同步发送状态SYN-SENT)
  • B -> A : ack = x + 1,seq = y (B收到报文段,向A发送确认,B进入同步收到状态SYN-RCVD)
  • A -> B : ack = y+1 (A收到B的确认后,再次确认,A进入连接状态ESTABLISHED)

连接后的状态:B收到A的确认后,进入连接状态ESTABLISHED

为什么要握手要三次

防止失效的连接请求突然传到服务器端,让服务器端误认为要建立连接。

二、TCP连接释放(四次挥手)

过程

A -> B : seq = u (A发出连接释放报文段,进入终止等待1状态FIN-WAIT-1)

B -> A : ack = u + 1,seq = v (B收到报文段,发出确认,TCP处于半关闭,B还可向A发数据,B进入关闭等待状态WAIT)

B -> A : ack = u + 1,seq = w (B重复发送确认号,进入最后确认状态LAST-ACK)

A -> B : ack = w + 1,seq = u + 1 (A发出确认,进入时间等待状态TIME-WAIT)

经过时间等待计时器设置的时间2MSL后,A才进入CLOSED状态

为什么A进入TIME-WAIT后必须等待2MSL

  • 保证A发送的最后一个ACK报文段能达到B
  • 防止失效的报文段出现在连接中

三、Tcpdump使用

tcpdump是对网络上的数据包进行截获的包分析工具,它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来去掉无用的信息。

监视指定主机的数据包

tcpdump host <IP地址>:截获该IP的主机收到的和发出的所有的数据包
tcpdump host <IP地址> and <IP地址>:截获两个IP对应主机之间的通信

监视指定端口的数据包

tcpdump port <端口号>:截获本机80端口的数据包

四、抓包分析握手过程

抓包方法:首先使用tcpdump命令截获本机与某远程主机的数据包,然后打开某远程主机对应的网站,这里用我的域名www.fonxian.cn来做试验。

ping www.fonxian.cn

得到域名对应的ip:151.101.100.133

ifconfg

得到本机内网ip:192.168.0.108

-S 参数的目的是获得ack的绝对值,不加该参数,第三次握手的ack为相对值1

sudo tcpdump -S host 192.168.0.108 and 151.101.100.133

得到下图

原文地址:https://www.cnblogs.com/zgq123456/p/9888976.html

时间: 2024-08-09 18:05:05

TCP三次握手与Tcpdump抓包分析过程的相关文章

TCP三次握手及tcpdump抓包

1. TCP报文段的首部格式 说明: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN=1而ACK=0时,表明这是一个连接请求报文.对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,  SYN置1就表示这是一个连接请求或连接接受报文 FIN (finis)即完,终结的意思, 用来释放一个连接.当 FIN = 1 时,表明此报文段的发送方的数据已经发

tcpdump抓包分析过程

本次抓包原因:公司统一采用阿里云k8s和slb服务:node开发的kuaizimu在调用saas服务的时候,无法调用到saas的api接口,发现超时问题严重.问到其他团队调用saas服务的同事(公司的zishuo项目组和dupa项目组),均表示能正常访问saas服务,并无出现超时现象.也就是说:saas服务一直能够稳健提供服务,网络也没有出问题. 排查了很久,开发和运维都咬定不是自己的问题:开发说:我线下开发环境可以访问,到了线上就不行:无能为力.并表示代码从始至终为获取到saas的api接口数

tcpdump抓包分析具体解释

說實在的,對於 tcpdump 這個軟體來說,你甚至能够說這個軟體其實就是個駭客軟體, 因為他不但能够分析封包的流向,連封包的內容也能够進行『監聽』, 假设你使用的傳輸資料是明碼的話,不得了,在 router 上面就可能被人家監聽走了! 非常可怕吶!所以,我們也要來瞭解一下這個軟體啊!(註:這個 tcpdump 必須使用 root 的身份執行) [[email protected] ~]# tcpdump [-nn] [-i 介面] [-w 儲存檔名] [-c 次數] [-Ae] [-qX] [

[转]Linux操作系统tcpdump抓包分析详解

PS:tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具. tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具.tcpdump存在于基本的Linux系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息.因此系统中存在网络分析工具主要不是对本

Wireshark和TcpDump抓包分析对比

常见的抓包分析工具有:微软的Network Monitor和Message Analyzer.Sniff.WSExplorer.SpyNet.iptools.WinNetCap.WinSock Expert.Wireshark和linux的tcpdump等工具 今天,做了实验测试就对比分析其中的两款,其他的大家可以百度谷歌测试一哈^_^ 1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用

Wireshark和TcpDump抓包分析心得

? 1. Wireshark与tcpdump介绍 ?Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工作环境中的Linux一般只有字符界面,且一般而言Linux都自带的tcpdump,或者用tcpdump抓包以后用Wireshark打开分析. 在Windows平台下,Wireshark通过WinPcap进行抓包,封装的很好,使用起来很方便,可以很容易的制定抓

转:tcpdump抓包分析(强烈推荐)

评:示例详细,还有很不错的图解 转自:https://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666539134&idx=1&sn=5166f0aac718685382c0aa1cb5dbca45&scene=5&srcid=0527iHXDsFlkjBlkxHbM2S3E#rd 转自:http://www.jianshu.com/p/8d9accf1d2f1 1 起因 前段时间,一直在调线上的一个问题:线上应用

第9组通信三班091网络协议抓包分析

一.地址规划表 源地址 目的地址 域名 备注 172.31.148.91 221.181.72.104 www.baidu.com 百度 172.31.148.91 183.240.51.232 www.douyu.com 斗鱼 二.源地址的配置(打开电脑网络状态,将源地址改成合规的网络地址.) 三.应用层分析(测试网络联通性)www.baidu.com 平均延时7ms左右,可以使用TCP协议 www.douyu.com 平均延时5ms左右,较为稳定.可进行UDP直播. 四丶传输层 1.TCP三

第五章 运输层(UDP和TCP三次握手,四次挥手分析)

序言   通过这章,可以知道其实三次握手和四次挥手其实真的好简单,通过这章的学习,我相信你也会同样的认为,以后在也不需要听到别人问三次握手的过程而自己一脸懵逼了,觉得人家好屌,其实也就是他懂你不懂,仅此而已,不懂就去学.学了你就会觉得其实也就那样,没有什么厉害的,这让我回想以前刚学习编程的时候,那时候刚学C,别人就说会写java的helloworld,真TM觉得屌啊,我连helloworld是什么度不知道.一直羡慕人家,怎么这么厉害,然后自己心里很虚,自己这么菜啊,其实不然,不懂的就去学习,学懂