建立一个web请求的过程 和所要用的协议以及它们的作用

概述

总的涉及到:http协议、用户数据报协议(UDP)、地址解析协议(ARP)、TCP协议、路由协议和IP协议

路由协议:路由协议通过在路由器之间共享路由信息来支持可路由协议。路由信息在相邻路由器之间传递,确保所有路由器知道到其它路由器的路径。总之,路由协议创建了路由表,描述了网络拓扑结构;路由协议与路由器协同工作,执行路由选择和数据包转发功能

关于ARP,在OSI模型中ARP协议属于链路层,而在TCP/IP模型中,ARP协议属于网络层

详解

mark

  • 通过DNS服务器将域名解析为IP地址(假设DNS和我们的主机在一个网段):因为所发出的数据要通过被访问主机的IP地址进行传输和路由
    • 首先主机会产生一个DNS请求,将请求传递给 传输层
    • 通过UDP(User Datagram Protocol,用户数据报协议)产生一个 UDP 报文,再传递给 网络层 产生一个IP报文,目的地址是DNS服务器的IP地址(DNS用的是UDP
    • 然后在 数据链路层 通过 ARP (Address Resolution Protocol,地址解析协议)协议得到DNS服务器的MAC地址
    • 这以后把 数据帧 通过以太网传输给DNS服务器,DNS服务器再将收到的帧向上传给传输层,得到UDP报文
    • 通过UDP报文中指定的端口号传给DNS应用程序
    • 假设要解析的域名在当前的DNS服务器中有相应的表项(如果不在当地,本地DNS服务器还要向上级的DNS服务器发出DNS查询请求,如此递归直到查到要解析的域名的IP地址)
    • DNS把通过DNS应答将得到的IP地址返回给请求的主机

虽然浏览器得到对方的IP地址了,但仍不能发出请求

  • 首先要和对方服务器建立一个TCP(传输控制协议,TCP和UDP同属传输层,但是TCP协议是个可靠的面向连接的协议,要比UDP复杂的多。TCP更适合要求可靠传输的应用。)连接
    • 建立连接通过三次握手方法,这里和以下发送的TCP报文同样要传给下一层:网络层
    • IP层给TCP报文加上IP报头,发送给路由器(假设主机和web服务器不在同一个网内),路由器根据报文中的目的IP地址决定下一跳的IP地址和端口
      • 这个决定需要查询它自身的路由表(而路由表的维护需要路由协议,比如OSPF等)
    • IP报文可能通过多个路由器的转发,终于到达了对方的服务器
    • 剥掉IP报头递交给上层
    • 建立好了TCP连接,以后发送的数据都可以这条可靠的连接传输了
    • 和WEB服务器之间的TCP连接建立成功。就可以发送请求

WEB服务器收到请求,就可以将响应信息通过刚才建立好的TCP连接送回给请求方

OSI模型与TCP/IP模型的区别

  • OSI 7层模型 依次为: 物理、数据链路、网络、传输、会话、表示、应用
  • TCP/IP 4层为: 数据链路、网络、传输、应用

TCP/IP把7层简化为4层

OSI模型是国际互连网标准组织定义出来是网络模型,分的很细 但是实际应用中却大部分只用到了TCP/IP的这4层,所以现在都说TCP/IP模型了 (但OSI还是要知道的)