当我们在百度输入一个url请求的时候。
1.首先,URL会触发DNS(这个会先看浏览器缓存,在查hosts文件,再查DNS服务器。注释:hosts文件就是一个系统文件,可以加快打开网址的速度,内容一般是与之对应的网址和IP地址)。DNS服务器时注册加入DNS的任何计算机,他有着一个域名和IP地址的索引,当被请求时,它可以告诉您与域名相关联的当前的IP地址。其实就是将熟悉的地址解析成计算机可以理解的IP地址。
2.然后就会构造HTTP协议的数据报,根据方法时get还是post决定将内容放在header或者body中,接下来这个HTTP数据报就会被交给传输层。
3.TCP就会把这个HTTP数据包构造成一个TCP数据报(TCP数据报在构造之前已经进行了三次握手,建立好了连接)然后交割IP协议。(端口号)
4.IP协议构造一个IP数据报(根据数据报的长度,以及MTU的限制,考虑是否将IP数据报分包),根据一个路由控制表中端口所对应的IP地址决定数据报从那个端口发出。(IP地址)。
5.构造一个以太网数据帧(封装成帧,差错检验,透明传输)。(MAC地址,目的MAC根据IP确定的转发的端口号来决定(网络层的ARP协议,mac学习))。
6.物理层,就是把帧转化成光信号和电信号,进行传输。
7.传输到下一台路由器之后,路由器一般只有四层(物理层,数据链路层,网络层,传输层),路由器进行解析,一层层解析到传输层。有时会通过NAT机制来转化IP地址,然后进行路由选择,查找路由表,走下一跳。
8.中间经过若干个路由器的转发过程,最终到达目的服务器。
9.到达目的服务器之后就开始解封装,也就是分用,其目的就是将最终的数据交给应用程序。
10.物理层把光电信号转成二进制bit流,交给数据链路层。
11.数据链路层解析出其中的IP数据报,交给网络层。
12.网络层可能需要套组包(数据过大,传过来的时候分包传过来的),解析出其中的传输层数据,交给传输层。
13. TCP解析出其中的应用层数据,交给应用程序并且返回确认ACK。(ACK也是一个数据报)
14. 服务器的应用程序,读取数据,根据请求计算响应,得到一个html页面,把页面构造成一个HTTP响应报文,然后传回客户端。
15. 客户端浏览器,把响应报文解析出来,渲染html,显示到浏览器上。
本文详细阐述了从输入URL到浏览器显示网页的过程,涉及DNS解析、HTTP协议、TCP/IP传输、路由选择、数据封装与解封装,以及服务器响应和浏览器渲染等关键步骤,揭示了互联网背后的工作原理。

被折叠的 条评论
为什么被折叠?



