一张图看懂通信原理,通信原理基础知识

首页 > 教育 > 作者:YD1662024-05-03 03:53:26

过程如下:

1、浏览器向目的主机发出TCP连接结束请求报文,此时进入FIN WAIT状态;

2、该报文FIN标志位设为1,表示结束请求;

3、TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->目的主机;

4、目的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文;

5、当前只是进行回应,因为目的主机可能还有数据要传,并不急着断开连接;

6、该报文中ACK标志位设为1,表示收到结束请求;

7、目的数据发送完所有数据后,向我的主机发出TCP连接结束请求报文;

8、该报文FIN标志位设为1,表示结束请求;

9、TCP结束请求报文通过IP(DNS)->MAC(ARP)->网关->我的主机;

10、我的主机收到数据帧,通过IP->TCP,TCP协议单元回应结束应答报文,此时进入TIME WAIT状态,因为不相信网络是可靠的,如果目的主机没收到还可以重发;

11、该报文中的FIN标志位均设为1,表示结束应答;

12、该TCP回应报文通过IP(DNS)->MAC(ARP)->网关->目的主机;

13、目的主机关闭连接;

14、TIME WAIT等待结束后,没有收到回复,说明目的正常关闭了,我的主机也关闭连接。

这里的过程是以我的主机主动发起结束请求开始的,实际上也可以由目的主机主动发起,那么过程就会跟上面相反,但细节差不多。

FIN_WAIT状态是主动发起请求时等待确认信息,而TIME_WAIT状态是收到结束请求后发送确认信息后等待看是否需要重发。

现在来说说为什么断开连接时需要四次挥手呢?因为建立连接时目的主机可以直接发送SYN(同步) ACK(应答)报文。而当断开时,目的主机收到FIN后可能还有数据要发,并不一定直接断开,所以先发送一次应答,告知我的主机收到了请求,等确认所有数据都发完了,再发送FIN,同时等待我的主机应答,这里的FIN和ACK就不能一起发送,所以需要四次。

4.2.5总结一下:

以上就是主机访问网站时的网络通信全过程,归纳起来就是:

首先要通过域名找到IP,如果缓存里没有就要请求DNS服务器;得到IP后开始于目的主机进行三次握手来建立TCP连接;连接建立后进行HTTP访问,传输并获取网页内容;传输完后与目的主机四次挥手来断开TCP连接。

上一页1234末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.