赞
踩
机器A向机器B发送建立连接请求的过程:
1.打开Wireshare,在黄色标签右侧输入http表示过滤http协议相关数据包,然后双击选中的网卡,我的电脑上网使用的是wlp3s0这个网卡。
2.在浏览器中输入www.baidu.com访问百度。
3.选择有GET请求这一行,右键—>追踪流->TCP流。
4.这个时候就可以看到TCP的三次握手了。
5.首先我们的主机向220.181.57.216发送包,可以看到FLAGS是SYN(SYN=1),Sequence Number=0(seq=0).
6.第二次握手220.181.57.216向我们发送FLAGS(SYN,ACK),Ack number=1 (也就是seqA+1),Seq=0
7.第三次握手 我们向220.181.57.216发送 FLAGS:ACK,ACK number=1,这样就建立TCP连接了。
使用字母C代表客户端,使用字母S代表服务端。客户端和服务端都可以主动断开连接,这里我们假设客户端主动断开连接。
(四次挥手的过程中也使用了seq和ack number这里就不说了,只要知道它们是用来标明包循序的就可以。个人理解这里使用seq是为了使某个ACK和某个Seq一一对应)
还是用上面三次握手抓到的数据,滚动到最下面就可以看到四次挥手的包。
最后说一个从网上看到的面试题目:
建立连接:
断开连接:
建立连接的2步骤被拆解为断开连接的2,3步骤,因为断开连接的时候有可能Server端还在发送数据所以Server端只能先回复ACK然后等发送完数据之后再发送FIN报文。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。