一个Http请求在整个网络中的主要过程

177 阅读4分钟

image.png
这里用TCP/IP的四层网络协议模型来表示。

当我们应用要向另一台主机发送数据时,会遵循以下步骤:

1.传输层,所起的作用是建议一个连接通道,还有连接的一些信息。把HTTP请求报文和传输协议的类型定义下来,这里使用TCP可靠性传输协议。 2.紧接着传输层的下一层是网络层,在网络层,所起的作用就是在两台的主机之间的路由之间,需要通过ip地址进行传输。所以网络层会加上IP头。 3.第三层,是数据链路层,数据链路层会继续增加一个MAC头,表示这个数据包要发送到的网卡地址,一般来说,这个MAC地址是具有厂家唯一标识和产品唯一标识的等来保证唯一性。这样可以确保传输时不会传输到其他设备上。

4.第四层,是最底层的物理层,计算机是以0、1来表示信息的,然而实际的处理是以电压的高低和电波的强弱等信号,把这些信号和二进制之间进行转换就是物理层的责任。所以这一层会把上一层的数据转换成比特流进行传输。

当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用。

这里大家可能会对MAC地址和IP地址有疑惑。 为什么有了MAC 层还要走IP 层呢? mac 地址就好像个人的身份证号,人的身份证号和人户口所在的城市,出生的日期有关,但是和人所在的位置没有关系,人是会移动的,知道一个人的身份证号,并不能找到它这个人,mac 地址类似,它是和设备的生产者,批次,日期之类的关联起来,知道一个设备的mac,并不能在网络中将数据发送给它,除非它和发送方的在同一个网络内。所以要实现机器之间的通信,还需要有ip 地址的概念,ip 地址表达的是当前机器在网络中的位置。

image.png

下面就来讲下,我们发送一个HTTP请求时,在整个网络中的过程。 从最上面的一层传输层开始,使用选择使用TCP协议来传送数据,这时候会封装一层HTTP的请求报文并且作为一个TCP的请求头,然后到达网络层。这时候网络层会在把数据进行包裹,形成新的数据在使用网络层的协议IP协议进行封装,添加一个IP协议的作为请求头在接着转发,每一层都会解析上一层的协议的请求,并且添加对应层次的协议的请求头,用于下一层判断。在网络层中转发的时候,各个路由地址本身会维护一个路由转发表,先从表里判断是是否存在,如果不存在会转发给其他路由,并且记录下来。 从网络层接着往下转发后,就是数据链路层了。数据链路层是会接着添加MAC地址(MAC地址是设备的物理唯一地址,在厂家出厂时会保证全球唯一),再往下就是物理层,最后会转化成二进制比特流进行传输。

当目标主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时会解析去掉各层协议的报文首部。每层协议盒都要去检查报文首部中的协议标识,已确定接收数据的上层协议。

image.png

感谢您阅读我的文章,如果满意可以帮我点个赞,谢谢哈。 如果对文章部分还有什么见解或者疑惑,可以私信评论我,欢迎技术讨论。如果需要获取完整的文件资源,可以加我微信z985085305,获取我整理的全套笔记。 思想的碰撞最能促进技术的进步哦。