在页面输入url,会经过的一些过程

1.      我们输入一个域名:www.baidu.com  

2.      浏览器查找浏览器缓存,如果有域名的IP地址则返回,如果没有继续查找;

3.      系统查找系统缓存,如果有域名的IP地址则返回,如果没有继续查找;

4.      路由器查找路由器缓存,如果有域名的IP地址则返回,如果没有继续查找;

5.      本地域名服务器采用迭代查询,它先向一个根域名服务器查询;

6.      根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址;

7.      本地域名服务器向顶级域名服务器dns.com进行查询;

8.      顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.baidu.com的IP地址;

9.      本地域名服务器向权限域名服务器dns.baidu.com进行查询;

10.  权限域名服务器dns.baidu.com告诉本地域名服务器所查询的主机www.baidu.com的IP地址

11.  本地域名服务器最后把查询结果告诉主机;

12.  主机浏览器获取到Web服务器的IP地址后,与服务器建立TCP连接;

13.  浏览器所在的客户机向服务器发出连接请求报文;

14.  服务器接收报文后,同意建立连接,向客户机发出确认报文;

15.  客户机接收到确认报文后,再次向服务器发出报文,确认已接收到确认报文;

16.  此处客户机与服务器之间的TCP连接建立完成,开始通信;

17.  浏览器发出取文件命令:GET

18.  服务器给出响应,将指定文件发送给浏览器;

19.  浏览器释放TCP连接;

20.  浏览器所在主机向服务器发出连接释放报文,然后停止发送数据;

21.  服务器接收到释放报文后发出确认报文,然后将服务器上未传送完的数据发送完;

22.  服务器数据传输完毕后,向客户机发送连接释放报文;

23.  客户机接收到报文后,发出确认,然后等待一段时间后,释放TCP连接;

24.  浏览器显示页面中所有文本。

 

1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。

  2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。

  3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。

  4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

 

发布了43 篇原创文章 · 获赞 144 · 访问量 31万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章