互联网是如何工作的,以及数据包的传输,涉及ip、DNS、MAC、端口号、ARP请求


前言

在日常生活中,当我们在电脑浏览器上的地址栏输入网址,按下回车后,啪的一下,很快嗷,网站的内容就出现在我们的屏幕上了,这到底是怎么一回事呢???在按下回车的一瞬间,电脑以及它所连接的互联网到底发生了甚么事!
在这里插入图片描述


以下是本篇文章正文内容啦~

互联网是如何工作的呢?

1. DNS域名解析

简单描述这个过程就是:我们的电脑告诉网站的服务器,我要你们网站的哪些东西,你赶紧麻溜的发送给我。然后网站的服务器按照要求,再把数据传送给电脑。
但在这样一个简单的流程中,电脑遇到的第一个问题就是:我应该怎样找到这个网站的服务器呢???就像我们给小伙伴寄快递一样,只有有了准确的地址,才能将快递寄到小伙伴的手上。
在这里插入图片描述

在互联网上亦是如此,每天电脑、手机、或者其他设备,都需要有一个地址,才能找到目的地。而这个地址,反映在电脑上,就是我们日常所说的ip地址。就类似于咱们生活中的,哪个省哪个市哪条街道多少号一样。有了这个地址,电脑,手机等设备才能准确的找到对方。我们较为熟悉的192.168.1.100 就是电脑的ipv4地址。(其中网络地址:192.168.1.0+主机地址0.0.0.100)。但由于ipv4的枯竭,使得ip地址逐渐向ipv6进行过渡。(通过cmd ipconfig进行查询)

在这里插入图片描述
我们在地址栏输入的网址www.baidu.com(也就是域名地址),就等于村口小卖铺的名字,主要是便于大家记忆,但仅仅知道一个名字是没有办法将快递寄送过去。我们还需要知道这个名字对应的是哪个省哪个市哪条街道多少号(IP地址)这个地址。(百度域名对应的IP地址220.181.38.148,可以通过在cmd中ping www.baidu.com来获取对应的ip地址。)

当我们按下回车键之后,要先查询到这域名对应的ip地址是多少。而负责查询域名对应ip地址的这个东西叫做DNS服务器。进行域名解析,他就相当于一个电话簿,存放着所有的域名—ip的对应。
在这里插入图片描述
所以按下回车之后,电脑会先找到本地DNS服务器,解析出来baidu.com这个域名所对应的ip地址。如果本地DNS服务器存缓中有的话,就会把IP地址发回来。如果这本地DNS服务器查询不到的话,他就会去问上面的根域名服务器(全球只有十三台)。但我们不可能每次都去访问根域名服务器,所以为了缓解根服务器的压力,会镜像出很多根(域名)服务器。所以加上镜像出来的服务器,全球大概有一千多台。根服务器记录了哪些服务器是负责查询.com 的,哪些服务器是负责查询.cn的 等等。根域名服务器一看是.czy 的,就会告诉我们应该去找这几台服务器,问到了之后,就会把对应的ip地址发送给电脑。

【知识扩展】DNS域名解析:先找本地域名服务器(local DNS Server),然后到根域名服务器(Root DNS Server),再到顶级域名服务器(TLD DNS server),再到二级域名服务器,找到对应的ip后,进行返回。DNS查询的方式有两种:迭代查询法和递归查询法。DNS服务器的地址可以自动进行获取,也可以通过自己指定的公共DNS服务器进行查询。
来自mooc

2. IP数据包传输

有了ip地址,我们就可以与网站的服务器建立联系。而和服务器联系的过程,就和我们寄快递 一样。

  • 首先:将"我需要你们网站的数据",讲这句话打包,同时携带上以下信息(源端口,目的端口,源ip地址,目标ip地址,MAC地址)。通过子网掩码判断目的端口的ip地址是否跟源主机在同一网段,如果在的话,由电脑网卡转给路由器,路由器通过网线转给光猫(光猫负责将电脑发出的数字信号转换成适合在光纤中传输的信号),光猫通过橘黄色的光纤转出去,再由其他路由器转下去,直到转发到目的地。而其中的路由器就相当于快递的转运中心,ip地址则可以帮助我们确定收货地址的位置。如果不在同一网段的话,则通过默认网关,转发给路由器,路由器通过路由表,确定路径,然后再通过ARP地址解析协议解析出下一个设备的MAC地址。再进行转发。
    在这里插入图片描述
  • Q: 但是主机到目的服务器之间有很多条路径,ip数据包具体应该怎么走呢???

其实当网卡把数据给路由器后,路由器会根据数据包中的目的IP地址在路由表中选择一条最优的路径,并将数据包转发到下一个路由器,层层往下,路径上最后的路由器负责将数据包送交目的主机。(这部分就涉及到分组交换、路由表与自动生成了。)

  • Q: 但怎么识别即将对接的路由器呢???

这个时候就需要MAC地址登场了。(MAC地址是我们设备在出厂的时候就拥有的一个独一无二的地址,用来标识路由器)
在数据包发送前,先进行ARP请求后,告诉路由器,下一站按照这个MAC地址,去找下一个路由器。下一个路由器同样会根据数据包的ip地址选择一条线路。同时把数据包的MAC地址改为下一个的路由器的。直到数据包被转到网站服务器的网卡上。

  • Q: 但是电脑上运行着很多程序,怎么样才能到达指定的程序呢???

因为不同的进程拥有不同的端口号,我们就可以根据端口号来识别不同的进程。例如网卡告诉服务器的8880端口有你的数据包,最后网站的服务器,再根据要求把数据发送到咱们的电脑上面。网页就显示到屏幕上了。

关于IP地址和MAC地址是怎样结合来传送数据包的,以及ARP请求,这位大佬解析的很好
下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送数据包的。 假设网络上要将一个数据包(名为PAC)由临沭的一台主机(名称为A,IP地址为IP_A,MAC地址为MAC_A)发送到北京的一台主机(名称为B,IP地址为IP_B,MAC地址为MAC_B)。这两台主机之间不可能是直接连接起来的,因而数据包在传递时必然要经过许多中间节点(如路由器,服务器等等),我们假定在传输过程中要经过C1、C2、C3(其MAC地址分别为M1,M2,M3)三个节点。A在将PAC发出之前,先发送一个ARP请求,找到其要到达IP_B所必须经历的第一个中间节点C1的MAC地址M1,然后在其数据包中封装(Encapsulation)这些地址:IP_A、IP_B,MAC_A和M1。当PAC传到C1后,再由ARP根据其目的IP地址IP_B,找到其要经历的第二个中间节点C2的MAC地址M2,然后再将带有M2的数据包传送到C2。如此类推,直到最后找到带有IP地址为IP_B的B主机的地址MAC_B,最终传送给主机B。在传输过程中,IP_A、IP_B和MAC_A不变,而中间节点的MAC地址通过ARP在不断改变(M1,M2,M3),直至目的地址MAC_B。

3. 网站响应速度

为什么有些网站打开的速度不快,其中有物理因素的干扰,离服务器的物理距离越远,信号传输的时间自然也会越长,经过的路由也会越多。查询并转发数据包也需要时间,有时还会有丢包的现象产生,导致速度变慢。于是一个网站的源服务器如果在上海,为了提高各位地区都建立了服务器,这些服务器就像分身一样,定时和源服务器同步数据。访问网站的时候,大家都去离自己最近的服务器获取数据。这样既提高了大家的访问速度,又减轻了主服务器的压力,同时还提高了安全性。 这就是我们常说的CDN(内容分发网络)。


参考

啃芝士
路由技术
数据包传输
MAC与IP

总结

初学计算机网络,将最近学习的内容记录下来。文章里面可能有部分,因为自己理解的不透彻而出现的错误,希望大佬们批评指正,谢谢啦~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值