<div class="article_content clearfix csdn-tracking-statistics" id="article_content" data-mod="popu_307" data-dsm="post" data-pid="blog">
<div class="markdown_views prism-atom-one-dark">
<!-- flowchart 箭头图标 勿删 -->
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" stroke-linecap="round" d="M 5 0 L 0 2.5 L 5 5 Z" /></svg>
<h2 id="tcp的三次握手"><a name="t0"></a>TCP的三次握手</h2>
TCP的三次握手大家都不陌生,下面用wireshark这个工具抓包,进一步的说明三次握手的细节。
1.由客户端发起tcp连接的请求,此时客户端发送一条报文,其中包含SYN标志位,将SYN设置为1; 以及seq位。设seq = x ; 该报文段成为SYN报文段
2.服务器收到这条报文后,返回给客户端一条报文,包含Ack位,SYN,以及seq位。 其中ack = x+1; SYN = 1; seq = y。该报文段称为SYNACK报文段
3.当客户端收到SYNACK报文段之后,客户端需要再给服务器发送另外一个报文段,进行确认。该报文段的SYN = 0, seq = x +1, ack = y+1;
使用wireshark工具
在浏览器中键入:https://blog.csdn.net/wzy901213 我的个人博客中心。
在这里,我们要知道我们所浏览的网页地址IP是多少,打开cmd命令行,去ping我们的浏览地址
blog.csdn.net
现在我们知道了咱们的目标ip地址是39.36.132.69
我们给wireshark设置过滤规则ip.addr==39.36.132.69 。
![这里写图片描述](https://img-blog.csdn.net/20180913112254342?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d6eTkwMTIxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)可以看到上方有三条tcp报文,就是tcp三次握手的具体过程。仔细看tcp报文中的信息。咱们现在只看关于这些报文里面seq,ack,SYN 的值
![这里写图片描述](https://img-blog.csdn.net/20180913113437411?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d6eTkwMTIxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)第一条TCP报文:
其中将seq设置为0 , SYN = 1 , ack = 0;
第二条TCP报文:
其中ack = 1(第一条报文中的seq+1) , SYN = 1 , 再将seq设置为1;
第三条TCP报文:
可以很明显的看到 ack = 1第二条报文中seq+1) ; seq =1(第一条报文中seq+1) ; SYN=0;
这样用wireshark工具抓包就可以很清晰的了解tcp三次握手的过程
作者:王宗耀 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/wzy901213