结合网络协议讲述一次请求的完整过程

一、温故而知新

image-20210127104054553

局域网:

ARP:通过MAC地址获取IP地址

DHCP:在主机入网时为其分配 IP默认网关

公网:

路由选择协议:RIP、 OSPF

RIP:基于距离向量的路由选择协议,是互联网的标准协议,最大的优点是简单,缺点是跳数有限,仅适用于小型互联网。

OSPF:(Open Shortest Path First) 最短路径优先,适用于规模较大的网络。

二、详细过程

1、请求发起

以向 www.linblog.tech/ 发起请求为例,刚开始操作系统并不知道此域名对应的IP地址,因此需要先通过DNS协议对域名解析得到目的IP。

2、使用Http/Https协议封装数据

得到目的IP,即知道目的地后,那就要打包行囊,首先第一层使用HTTP或HTTPS协议对数据进行封装请求头和请求参数。

image-20210127144139719

3、使用TCP/UDP协议封装数据

使用TCP协议需要消耗三次网络请求来建立可靠的连接,如果是UDP则无需建立连接即可通信,但不可靠。这里以Http/Https请求为例,Http/Https基于TCP。

image-20210127205950951

4、使用IP协议封装数据

传输层封装完成后,浏览器将包交给操作系统的网络层,网络层的协议是 IP 协议,在这一层,会给传输层传递过来的包加上 IP 头,其中包含源 IP 地址(浏览器所在机器)、源端口、目标 IP 地址(服务器所在机器)、目的端口等信息:

image-20210127210243102

5、找到默认网关

此时数据包裹已经打包好,知道自己来自哪里且要去向何方,此时操作系统会通过ARP协议找到当初入网时依据DHCP协议分配的默认网关。当网关收到数据包后根据自己的路由表为数据包指路,去往下一跳路由,此后数据包就脱离局域网。“西出网关无故人”

image-20210127211149422

6、闯荡公网

之后数据包会遵循路由选择协议 RIP / OSPF ,在路由器的帮助下寻找下一跳路由,直到到达目的网络。

7、到达目的主机

根据目的IP找到目的主机后,数据包经历的事情就和出来时相反,一层层的剥掉身上的包装,IP封装,TCP封装,HTTP封装,最后通过内核根据端口号将数据拷贝到对应的进程。

总结笔记:

image-20210128082514688

参考文章: https://blog.csdn.net/qq_41431406/article/details/97618448 https://www.cnblogs.com/stringarray/p/12919644.html

相关推荐文章:

操作系统虚拟内存

结合操作系统,计算机网络理解Linux网络IO模型

end

评论