展会搭建设计案例网站,电子商务网站制作教程,好发信息网网站建设,标志设计理念「作者主页」#xff1a;士别三日wyx 「作者简介」#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 使用WireShark工具抓取TCP协议三次握手的数据包士别三日wyx 「作者简介」CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 使用WireShark工具抓取TCP协议三次握手的数据包分析TCP三次握手过程分析TCP报文中各个字段的作用。 第一步访问百度第二步过滤TCP协议的数据包第三步数据包分析第四步数据报文分析 第一步访问百度
1打开wireshark开启抓包然后打开浏览器访问百度触发TCP三次握手。
2打开cmdping www.baidu.com 拿到百度的IP地址。 第二步过滤TCP协议的数据包
1显示过滤器输入tcp and ip.addr110.242.68.3过滤TCP协议的数据包。 最上面的三个包就是TCP三次握手的数据包每个包对应一次握手。
第三步数据包分析
先分析一下三个握手的包都做了什么
1先看第一个数据包源地址Source字段是我 cmd执行 ifconfig 验证一下
目的地址Detintion字段是百度的地址 Info字段是请求的描述可以看到里面有一个 SYN 总结一下第一个包做了什么 我的电脑向百度的服务器发送了一个TCP请求SYN表示这是一个建立连接的请求这是第一次握手。
2再看第二个数据包源地址Source字段是百度的地址 目的地址Detintion字段是我的 Info字段是描述可以看到有一个 SYN 和 ACK 总结一下这个包做了什么 百度的服务器收到我的链接请求以后向我的电脑发送了一个TCP请求SYNACK表示这是一个应答的请求这是第二次握手。
3再看第三个数据包源地址Source字段是我 目的地址Detintion字段是百度的服务器 Info字段是描述可以看到里面有一个 ACK 总结一下这个包做了什么 我的电脑收到百度服务器的响应请求后向百度的服务器发送了一个TCP请求ACK表示这是一个确认请求这是第三次握手
发送完这个确认请求后三次握手就完成了客户端会打开到服务器的单向链接服务器收到确认请求后就会打开到客户端的单向链接两个方向的连接都打开就可以传输数据了。
第四步数据报文分析
TCP协议数据报文格式如下图接下来我们根据抓到的数据包分析各个字段的对应关系及作用。 1点开TCP协议的数据包第四行 Transmission Control Protocol 就是TCP协议的数据了。按照首字母区分协议。
Source Port字段是源端口客户端会使用一个随机端口向服务器发起TCP连接Destination Port字段是目的端口因为我们是用https协议访问百度所以这里是向服务器的443端口发起TCP连接 2序号和确认号用来按顺序重组数据
Sequence Number表示本次传输数据的起始字节在整个数据流中的位置是相对序号Sequence Number Raw原始序号Next Sequence Numvber下一个包的序号Acknowledgment Number期望收到下一个包的序号相对序号Acknowledgment NumberRaw原始序号 3数据偏移表示数据到开始位置的距离用来计算TCP报文的首部长度 4标志位用来确认请求的作用三次握手中需要注意的两个标志位是Acknowledgment ack和 syn
Reserved保留位Nonce显式拥塞通知标明阻塞即将发生让发送方降低传输速率CWR减少拥塞窗口ECN-Echo有两种意思取决于SYN的值紧急 URGUrgent为1表示高优先级数据包确认 ACKAcknowledgment 为1表示确认号字段有效推送 PSHPush为1表示接收方尽快将这个报文交给应用层而不用等待缓冲区装满复位 RSTReset为1表示出现严重错误需要重新建立连接复位 SYN建立连接时同步序号SYN1和ACK0表示连接的请求SYN1和ACK1表示接收连接的请求终止 FIN为1表示传输完成请求释放链接 注意看第一次握手的数据包因为标志位里只有Syn的值为1所以Flags显示的是SYN请求的Info字段也就显示 SYN 再看第二次请求的数据包因为标志位里Syn和Acknowledgment的值都是1所以Flags显示的是 SYNACK请求的Info字段也就显示 SYNACK 5最后就是窗口大小、校验和、紧急指针、选项、填充这几个字段
window字段表示窗口大小告诉对方自己所能接收的最大字节是多少用于流量控制Checksum字段表示校验和用来检验数据包的完整性Urgent Poiter字段表示紧急指针在标志位URG为1的时候有效代表一个偏移量和序号字段值相加Options字段表示选项长度可变Timestamps字段表示填充