协议

OSI模型是从上往下的,越往下越接近底层硬件,越往上越接近软件,从下到上依次是 :物理层、数据链路层、传输层、网络层、会话层、表示层、应用层。但是这只是理论上的划分,在实际的应用中使用的是TCP/IP模型,该模型将网络划分为四层,依次是:网络接口层、互联网层、传输层、应用层

一:在浏览器中输入一个网址,在整个请求过程中都用到了哪些协议?

  • 应用层

从上到下来看,在浏览器的地址栏中输入一个网址也就是一个域名,比如:www.zby123.club

首先使用DNS协议去查找对应的IP地址,这个地方的DNS/HTTP/HTTPS协议都是应用层协议,通过这些协议封装的数据包会交给下一层,直到最底层才会通过网卡,网线发送出去

  • 传输层

应用层的下一层是传输层,传输层有面向连接的TCP协议和无连接的UDP协议

TCP协议会保证数据包的到达,如果数据包一次没有到达,会重新发送,直到到达,使用实例比如微信支付

UDP会尽最大努力使得数据包交付,但是不保证可靠交付,优点就是对系统资源要求小,程序结构简单,比如fps游戏数据(本地计算上传到服务器交互)、视频通话等

  • 网络层

当包在传输层封装结束后就传输到网络层,网络层使用的就是IP协议,IP协议中包括源地址IP和目的IP,源地址IP就是浏览器所在网络IP,目的IP就是数据包需要到达的目的网络IP,在应用层通过DNS协议获取的目的IP这里就用上了

但是知道了目的IP,我们一般还是不能直接访问的,除非是和源地址是在同一个网络中,否则我们就需要离开本地出去,那就需要从网关走,本地网络中的IP是通过DHCP协议自动分配的,想要找到网关就需要知道网关的MAC地址,我们知道每一个网络设备在出场时都会分配一个全球唯一的MAC地址

  • 网络接口层

我们有了网关的IP地址,只需要使用ARP协议向网关发送询问,网关就会回应一个自己的MAC地址,此时,网络层的数据就会传达到下一层也就是网络接口层, 在这一层里封装了本地的MAC地址和网关的MAC地址

网关一般是路由器,它收到包之后,会判断如何走才能到达目标IP。当然到达目标IP可能会通过多个网关,那么如何进行判断到达目标IP的路径呢?

网关之间会通过路由协议进行沟通,常用的路由协议有OSPF和BGP。每一个网关都会判断这个包里的目标IP地址是不是在自己的网络里,如果不在,则会告诉你,下一步应该去哪个网关比较近,直到来到目标IP所在网络的网关,这个网关知道目标IP的MAC地址,也就抵达了目的地。

所以就这样经过多个网关,最终我们的数据包就到达了目标IP对应的机器上。

到达目标后

目标机器收到了这个包之后,会把层层封装的包再一个个拆掉,最终该网站对应的进程得到了HTTP请求的内容,对其进行处理,并给出返回内容。这个包就像来的时候一样再返回到我们自己的电脑上,最终被浏览器接收,然后把HTTP响应的内容解析后,展现在我们的眼前。

You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注