url访问网站的网络传输全过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HCJS_Zee/article/details/83385486

整个过程基本分为下面几个部分:
1、域名解析成IP地址;
2、与目的主机进行TCP连接(三次连接);
3、发送与收取数据;
4、与目的主机断开TCP连接(四次挥手);

域名解析过程如下
1、浏览器向本机DNS模块发出DNS请求,DNS模块生成相关的DNS报文。
2、DNS模块将生成的DNS报文传递给传输层的UDP协议单元。
3、UDP协议单元将该数据封装成UDP数据报,传递给网络层的IP协议单元。
4、IP协议单元将改数据封装成IP数据报,其目的IP地址为DNS服务器的IP地址。
5、封装好的IP数据包将传递给数据链路层的协议单元进行发送。
6、发送时在ARP缓存中查询相关数据,如果没有,就发送ARP广播(包含待查询的IP地址,收到广播的主机检查自己的IP,符合条件的主机将含有自己MAC地址的ARP包发送给ARP广播的主机)请求,等待ARP缓存表。
7、得到ARP回应后,将IP地址与路由的下一跳MAC地址对应的信息写入ARP缓存表。
8、写入缓存后,以路由下一跳的地址填充目的MAC地址,以数据帧形式转发。
9、转发可能进行多次。
10、DNS请求到达DNS服务器的数据链路层协议单元。
11、DNS服务器的数据链路层协议单元解析数据帧,将内部的IP数据包传递给网络层IP协议单元。
12、DNS服务器的IP协议单元解析IP数据包,将内部的UDP数据包传递给传输层UDP协议单元。
13、DNS服务器的UDP协议单元解析收到的UDP数据报,将内部的DNS报文传递给DNS服务单元。
14、DNS服务单元将域名解析成对应IP地址,产生DNS回应报文。
15、DNS回应报文-》UDP-》IP-》MAC-》我的主机。
16、我的主机收到数据帧,将数据帧-》IP-》UDP-》浏览器。
17、将域名解析结果以域名和IP地址对应的形式写入DNS缓存表。

ARP,类似于DNS将域名翻译成IP,ARP则是将IP翻译成MAC地址,我们知道了IP后,需要通过主机的MAC地址来更具体的找到主机。同样的有一个ARP缓存,其中存储了一些IP与MAC地址的对应关系,如果缓存中找不到,就会进行广播来查找MAC地址,收到广播得主机会检查自己的IP是否是待查找的IP,是的话就返回自己的MAC地址。

与目的主机进行TCP连接(三次握手)
得到域名对应的IP地址后,也就表示可以将数据送达目的主机了,开始三次握手建立连接。

1、向目的主机发送TCP连接请求报文。
2、该TCP报文中SYN标志位设为1,表示连接请求。
3、该TCP报文通过IP(DNS)-》MAC(ARP)-》网关-》目的主机。
4、目的主机收到数据帧,通过IP-》TCP,TCP协议单元回应请求应答报文。
5、该报文中SYN和ACK标志设为1,表示连接请求应答。
6、该TCP报文通过IP(DNS)-》MAC(ARP)-》网关-》我的主机。
7、我的主机收到数据帧,通过IP-》TCP,TCP协议单元回应请求确认报文。
8、该TCP报文通过IP(DNS)-》MAC(ARP)-》网关-》目的主机。
9、目的主机收到数据帧,通过IP-》TCP,连接建立完成。

发送与收取数据
只有建立连接后才能开始传输数据,数据其实有多种传输方式,比如分段、分组、分时等。一个数据包的传输过程如下,以HTTP的GET方法请求为例:
1、浏览器向域名发出GET方法报文。
2、该GET方法报文通过TCP-》IP(DNS)-》MAC(ARP)-》网关-》目的主机。
3、目的主机收到数据帧,通过IP-》TCP-》HTTP,HTTP协议单元会回应HTTP协议格式封装好的HTML形式数据。
4、该HTML数据通过TCP-》IP(DNS)-》MAC(ARP)-》网关-》我的主机。
5、我的主机收到数据帧,通过IP-》TCP-》HTTP-》浏览器,浏览器以网页形式显示HTML内容。

与目的主机断开TCP连接(四次挥手)
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 等待结束后,没有收到回复,说明目的正常关闭了,我的主机也关闭连接。

猜你喜欢

转载自blog.csdn.net/HCJS_Zee/article/details/83385486