网页请求过程的通信原理

网页请求过程的通信原理

  • 网页请求过程的通信原理
    • TCP/IP概述
    • TCP/IP数据处理流程
      • 计算机网络体系结构分层
    • 网页请求过程简析
    • 原理分析

网页请求过程的通信原理

本文结合TCP/IP协议族,对网页请求过程进行深度剖析,主要讲解网页请求过程中各种协议之间的耦合和原理,有不合之处,望不吝指教。

TCP/IP概述

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

TCP/IP数据处理流程

如下图所示,在数据到达的每一层进行封包时,都会附加当前层的首部,在接收端解包时,则会在当前层解析对应的首部数据。
网页请求过程的通信原理_第1张图片

计算机网络体系结构分层

网页请求过程的通信原理_第2张图片

应用层:HTTP/HTTPS/SSH/FTP/TELNET等,泛指具有网络通讯的应用程序,而这些应用层的协议只是被应用程序应用而已。

会话层/表示层:没什么好讲的,都是程序员调用的,就是对报文进行编码。

传输层:TCP/UDP,基础不讲,作用通俗的讲就是不管怎么传输,数据肯定可以点对点的传输,而传输层的协议就是对这个传输的过程进行控制。

网络层:IP/ICMP/IGMP/ARP/RARP,这一层的作用是告诉计算机在网络中传送报文的路径等等。

数据链路层:就是MAC,全球唯一的物理地址,网卡出场时写在里面的,而网络中报文的传输就是靠识别MAC地址来进行传输的。

物理层:010101010101的信号在通信介质中传输。

网页请求过程简析

网页请求过程,无论是用程序员用脚本请求网页,还是用户在浏览器输入URL按下回车来请求网页,统统都属于HTTP或者HTTPS请求网页的过程,其中,这个脚本和用户所用的浏览器都属于应用程序,且都有对应的进程,而所请求的网页是在另外的一个服务器上,它是一个服务,也有自己的进程,是进程就一定有自己的端口号,那么综上所述,网页请求的过程就是不同的两台主机里的进程,进行交互的过程。

原理分析

按照请求过程的流程,按顺序分为以下几步:

域名解析与HTTP报文封装
用户在浏览器输入网址,浏览器对域名进行域名解析,此处域名解析步骤不在阐述,就是将域名解析成对应的公网IP地址,浏览器默认的端口为80端口,https协议的是443端口,浏览器将访问的信息按照HTTP协议封装为HTTP请求报文,作为要发送的应用层数据块。

传输层TCP报文封装
网页请求必须要建立连接,否则就会出现错误,所以这个请求的过程是属于TCP协议。

TCP报文格式:
网页请求过程的通信原理_第3张图片

在知道了要访问的IP+80端口后浏览器(进程中的程序)将目标IP,目标端口,要发送的数据块发送到传输层,传输层为当前的浏览器进程分配绑定一个TCP端口(这个端口的作用就是标识进程,区分主机上的进程,又叫做应用程序地址),接下来就是大家熟悉的TCP三次握手,两次握手后,第三次可以添加数据块发送了,步骤是在传输层为数据块添加源端口、目的端口,此时数据块+目的/源端口叫做数据块(TCP)/消息(UDP),然后向下发送到网络层。
握手过程
网页请求过程的通信原理_第4张图片

不熟悉TCP握手和挥手协议原理的童鞋自行查资料,这里不再赘述。

网络层IP报文封装
在网络层为数据添加目的/源IP地址(此处目的IP由传输层提供,而目的IP/端口都是用户提供的),此处数据块+目的/源端口+目的/源端口的报文叫做数据包,数据包发送到数据链路层。
IP层主要是添加IP首部,确定节点所在网络的位置,进而确定节点所在的位置;IP路由器选择适当的路径将IP包转发到目的节点;根据链路的MTU对IP包进行分片和重组等。

数据链路层ARP封包
数据链路层添加目的/源MAC地址。
在网络层时源IP和目的IP会与子网掩码做与运算来确定目的IP是否和源IP在同一网段,当在同一网段时目标MAC直接添加表里IP对应的MAC,此处假设不在同一网段,目标MAC填网关MAC形成数据帧,最后通过物理层电信号将数据帧发送至网关,网关接收到数据帧后对其解析,将源地址换成路由设备的IP,源端口换成没有被占用的端口,同时在转换表中添加替换前后IP+端口的对应关系,路由设备数据帧通过目标MAC发送至目标主机。
对ARP请求需要详解的童鞋,请参考我的另一篇文章。
ARP通信协议原理过程

物理层电信号
根据数据链路层的数据帧进行电信号的转换,完成物理层的传输。

你可能感兴趣的:(通信协议)