zoukankan      html  css  js  c++  java
  • 在浏览器中输入url后执行的全过程

    一、进行域名解析(获取IP地址)

    域名解析过程:

      1、浏览器搜索自己的DNS缓存,缓存中维护了一张域名和IP地址的对应表

      2、若没有则搜索操作系统的DNS缓存

      3、若没有则操作系统将域名发送到本地域名服务器,本地域名服务器在自己的DNS缓存查找(递归查询)

      4、若没有则通过以下方式查找(递归查询/迭代查询)

        本地域名服务器向根域名服务器发送请求,根域名服务器返回com域顶级服务器域名地址

        本地域名服务器向com域顶级域名发送请求,com域顶级域名服务器返回权限域名服务器地址

        本地域名服务器向权限域名服务器发送请求,得到IP地址

      5、本地域名将得到的IP地址返回操作系统,同时自己也将IP地址缓存起来

      6、操作系统得到IP地址返回给浏览器,同时自己也将IP地址缓存起来

      7、浏览器得到IP地址

    二、应用层-浏览器发送HTTP请求

    作为发送端的客户端在应用层(HTTP协议)发送了一个想要做某件事的HTTP请求(比如请求某个接口)

    三、传输层-TCP或者UDP封装数据(HTTP请求报文)

    为了传输方便,传输层选择协议(TCP协议或者UDP协议)对从应用层收到的数据(HTTP请求报文)进行封装(对收到的数据进行分割,并在各个报文上打上标记序号及端口号)后转发给网络层

    四、网络层-IP协议封装IP地址,获取目的MAC(media access control address)地址

    通过IP协议将IP地址封装为IP数据报,此时会使用ARP协议(ARP是一种用以解析地址的协议,根据通信方的IP就可以反查对应的MAC地址)主机发送信息时会将包含目标IP地址信息ARP请求广播到网络上所有的主机,并接受返回消息,以此确定目标的物理地址,找到目的的MAC地址

    五、链路层-(又名数据链路层、网络接口层)建立TCP连接

     把网络层交下来的IP数据添加首部和尾部,封装为MAC帧,根据目的MAC地址建立TCP连接(三次握手)

    不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

  • 相关阅读:
    Mininet 搭建自定义网络
    struts 2 三目运算
    shell 变量自增(转)
    Java DES 加密和解密源码(转)
    java调用shell脚本
    shell 学习
    debian安装jdk6
    linux(debian) 安装jdk
    利用SecureCRT上传、下载文件(使用sz与rz命令)
    oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
  • 原文地址:https://www.cnblogs.com/wangxirui/p/12794765.html
Copyright © 2011-2022 走看看