打开另外一个页面_网络协议入门:浏览器打开一个页面会用到什么协议?

在互联网时代混,就一定离不开网络协议。因此本文我们来聊聊网络协议。

eeeca549d9933d2d07108ec3444413fc.png

这个URL是以https开头的,用到了HTTPS协议,浏览器发送HTTPS请求,接收到HTTPS返回,然后解析,展现给你这个URL所对应的页面。

当然除了HTTPS协议之外,还有很多的网络协议。有些朋友学习过计算机网络课程,知道网络协议是分层的。

网络协议的分层

国际标准化组织在 1984年 提出的模型标准,也就是OSI模型里分了七层。OSI 模型是从上往下的,越底层越接近硬件,越往上越接近软件,这七层模型分别是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。但是网络七层模型是一个标准,而非实现。

那么在实际应用里,我们使用的是TCP/IP模型,它将 OSI 模型由七层简化为四层,这四层是:网络访问层、网络层、传输层、应用层。在每一层里都有许多的网络协议,这里我就不展开来说了。

浏览器访问一个页面用到的协议

光是看上面七层四层模型的概念,是不是枯燥的快睡着了?那么我们具体的来看一看,从浏览器输入URL地址,到页面呈现在你面前,会用到哪一层的什么协议。

首先,我们输入的网址,这是一个URL。但是浏览器并不知道这个地址如何访问,所以需要使用DNS协议,去查找它的IP地址。

你会留意到,有些网站是用http开头,有些则是用https开头的。HTTP协议是非加密协议,而HTTPS是一个加密协议,对于需要加密传输的数据,可以使用HTTPS协议。

应用层

刚才提到的DNS/HTTP/HTTPS协议,都是应用层的协议。因此通过这些协议封装的包,需要交给下一层,直到最底层,才能通过网卡,网线等硬件进行数据传输。

传输层

应用层的下一层是传输层。传输层有面向连接的TCP协议和无连接的UDP协议。面向连接的TCP协议会保证这个包能够到达目的地,如果一次没有到达就会重新发送,直到送达。

而面向无连接的UDP协议是尽最大努力交付,并不能保证可靠交付,其优点就是对系统资源要求少,程序结构简单。

因此,两种协议有各自的适用场景。对数据可靠性要求高的,例如支付场景可以选用TCP协议,而对数据可靠性要求没那么高,但是希望不要占用太多系统资源的,例如视频通话场景,则可以选用UDP协议。

网络层

当包在传输层封装完毕之后,就会继续交给传输层的下一层,也就是网络层。网络层的协议是IP协议。IP协议里面就有源IP和目标IP地址,也就是浏览器所在机器的IP地址,和所要访问的目标网站的IP地址。所以,刚才我们利用DNS协议通过网站URL查找到的IP地址,就在这里派上用场了!

知道了目标IP地址,一般我们不能直接找到他,除非这个地址是在本地。而我们访问的网站,一般都是在外面,所以我们要离开本地出去。怎么去呢,就要通过网关。

你可以查看一下本地机器的IP配置,linux下通过ifconfig命令就可以查看。这个IP配置可能是你自己或者网络管理员手动配置的,也可能是自动配置的。如果是自动配置,会通过DHCP协议进行配置,这里就先不展开来说了。

本机的IP配置里面有一个网关的IP地址,因此要先找到网关。通过IP地址怎么找到网关呢?大家应该知道,每一个网卡都有一个全世界唯一的MAC地址,这个是在出厂的时候就被厂家设定好了的。因此只要我们知道网关的MAC地址,就一定能找到它了。

网络访问层

所以,我们有了网关的IP地址,再通过ARP协议发出询问,网关就会答复一个它的MAC地址。此时,网络层的包就可以交给下一层了,也就是网络访问层,在这一层里封装了本地的MAC地址和网关的MAC地址。

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

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

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

送达目标机器,进行处理

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

本文对你有没有帮助呢?欢迎参与讨论,如有疏漏也欢迎留言指出。


2019年的第019篇,爱上生活的每一天!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值