当你打开一个网页,到底发生了什么?——计算机网络

计算机网络体系结构中的各个层次都做了哪些工作呢?又用到了哪些协议呢?

首先,在OSI七层协议体系结构中,我们把计算机网络由上至下分为七个层次:应用层,表示层,会话层,运输层,网络层,数据链路层和物理层。
然而,OSI模型作为法律上的国际标准并未被使用,被广泛使用的是事实上的国际标准,著名的TCP/IP四层网络模型,从上到下分为:应用层,运输层,网际层和网络接口层。
但是我们在学习计算机网络时往往采用五层体系结构,从上至下依次为:应用层,运输层,网络层,数据链路层和物理层。

图1-1 一张图带你看懂计算机网络体系结构

1. 查找本机IP地址

如果你是一台处于局域网中的机器,你会通过DHCP(动态主机配置协议, Dynamic Host Configuration Protocol)获取其配置信息而不需要手工干预,配置信息包括(1) IP地址;(2) 子网掩码;(3) 默认路由器的IP地址;(4) 域名服务器的IP地址。在你和外界互联网进行通信时,要经过NAT(网络地址转换,Network Address Translation)来将局域网的私有IP地址转换为全球IP地址。

2. 查找目标IP地址

接下来我们需要找到目标的IP地址,这时就需要使用DNS(域名系统,Domain Name System)啦。浏览器分析指向页面的URL后,首先我们会检查DNS缓存中是否缓存了页面对应的IP地址,如果刚好缓存了,直接返回就好了。如果没有缓存,我们就必须让DNS一级一级地向上查找,直至解析出域名对应的IP地址。

3. 浏览器与服务器建立TCP连接

这时候我们就要使用著名的三次握手的方法来建立TCP连接啦。
为什么要采用三次握手呢?可以看一下我发布的另一篇文章。
TCP三次握手

4. 浏览器发出http请求

浏览器与服务器建立TCP连接后,浏览器就可以向服务器发送http请求啦。那么在这个过程中会使用哪些协议呢?我们来分析一下。

首先http协议是应用层协议,需要使用到运输层提供的服务,具体来说就是TCP协议。

而TCP属于运输层协议,又需要使用到网络层提供的服务,也就是IP协议。IP数据报在不同的AS(自治系统)中进行传送时,需要使用边界网关协议BGP来选择路由。在AS内部,使用RIP(使用UDP进行传送)和OSFP(直接用IP数据包传送)来选择路由。

IP协议继续向下使用数据链路层的服务,将IP数据包重新组成MAC帧进行传送(使用点对点协议PPP)。MAC帧传送时就需要MAC地址,于是就需要地址解析协议ARP进行IP地址到MAC地址的映射。然后数据就可以经过物理链路传输啦。

5. 服务器通过响应http请求把页面文件传送给浏览器

这个步骤使用的协议和上一个步骤是相同的。

6. 释放TCP连接

这里一定要注意,TCP是面向连接的,使用完毕一定要释放的。

7. 浏览器解释文件,并显示

这里就不重点分析啦,因为这个问题我们着重分析计算机网络。

总结

在整个过程中,我们使用的协议主要有:

  • 应用层:
    • http:定义了浏览器怎样向服务器请求文档,以及服务器怎样把文档传送给浏览器。
  • 运输层:
    • TCP:面向连接的,可靠的,面向字节流的协议。
    • UDP:无连接的,尽最大努力交付,面向报文的协议。
  • 网络层:
    • IP:提供简单灵活的、无连接的、尽最大努力交付的数据报服务。
    • ARP:把IP地址解析为硬件地址,它解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。
    • RIP:分布式的基于距离向量的路由选择协议,只适用于小型互联网。RIP按固定的时间间隔与相邻路由器交换信息,交换的信息是自己当前的路由表。
    • OSPF:分布式的链路状态协议,适用于大型互联网。OSPF只在链路状态发生变化时,才用向本自治系统中的所有路由器,用洪泛法发送与本路由器相邻的所有路由器的链路状态信息。
    • BGP:不同AS的路由器之间交换路由信息的协议,是一种路径向量路由选择协议。BGP力求寻找一条能够到达目的网络(可达)且比较好的路由(不兜圈子),而并非要寻找一条最佳路由。
    • NAT:使用网络地址转换NAT技术,可以在专用网络内部使用专用IP地址,而仅在连接到因特网的路由器使用全球IP地址。这样就大大节约了宝贵的IP地址。
  • 数据链路层:
    • PPP:在数据链路层提供的是不可靠的数据报服务。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kuo-Teng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值