zoukankan      html  css  js  c++  java
  • 【校招面试 之 网络】第4题 浏览器访问网站的一次完整过程

     

    在浏览器中输入www.baidu.com后执行的全部过程:

     
    1. 应用层:客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,(DNS常见使用分布式的结构)通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。
    2. HTTP请求与响应:将要发送的数据以及http请求的地址等封装成一个http请求报文。
    3. 传输层:把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。这里还涉及到建立TCP链接(3次握手)以及之后释放TCP链接(4次握手)。

    4.  

      网络层:网络层不关心应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,通过查找路由表决定通过那个路径到达服务器。(这里涉及到路由选择的一些算法:RIP、OSPF等)

    5. 链路层:包通过链路层发送到路由器,通过ARP协议查找给定IP地址的MAC地址(ARP:通过查路由表确定了路由的下一跳是谁),然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址
  • 相关阅读:
    iOS内存管理机制
    iOS开发之XML和JSON数据解析
    Ubuntu小点汇总,更新中...
    Android与服务器的简单通讯
    Gedit乱码问题
    Eclipse软件问题-方案积累
    开放接口使用积累
    定制知识积累
    Android小代码-技巧积累
    Android初学点滴积累(操作篇)
  • 原文地址:https://www.cnblogs.com/xuelisheng/p/9389040.html
Copyright © 2011-2022 走看看