网包是如何到达另外一台电脑上的?当你在微信上发送一条消息时互联网发生了什么?

目录

一.前言

二.互联网、物联网、万维网、互联网+是什么?

互联网:

万维网:

物联网:

互联网+:


一.前言

    互联网其实就是数以计万的服务器组成的,这些服务器通过光缆、电缆相互连接交互,甚至在距离较近的情况下可以通过电话线、串口进行连接交互。

    这些服务器里存放着许许多多的网页,和网页资源,这些网页以及网页资源构成了一个完整的网站,在服务器中,会存放很多的网站,服务器会把这些网站进行划分,在内存空间上的划分,并有序的存储在磁盘的各个角落里。

互联网也叫因特网(Internet),其实最早互联网就是因特网,只是在中文翻译时翻译的粗糙了点,就演变成了互联网!

二.互联网、物联网、万维网、互联网+是什么?

互联网:

在前言中也说过:

  互联网其实就是数以计万的服务器组成的,这些服务器通过光缆、电缆相互连接交互,甚至在距离较近的情况下可以通过电话线、串口进行连接交互。

 较近的距离是指双方都在同一办公室下,并且这是局域的,可以通过串口、电话线等通讯总线,将要访问的数据发送给指定机器上,并且双方都是相互连接的才能收发数据:

可以在主机A上搭建一个小型的服务器,里面存放着一个网站所需的完整资源,我们可以通过通讯总线向其索要这个网站的一些资源文件,并将其显示出来:

如果有多个主机就像需要中转装置,因为主机硬件配置,只能接一到两个串口

转接器会接受这些数据并并排转发给主机,主机在返回给转接器,转接器在转发给对应的主机!

注意:转接器在工作时,需要明确代码指定返回给那一端的端口!

同时当我们需要访问远程服务器上的资源时,就需要用到光缆、电缆了,这个时候就需要调制解调器(MODEM),简称猫,也叫路由器!

猫就相当于一个小型的电脑,能够将电平脉冲信号翻译成对应的二进制数据,在将这组二进制数据转发给电脑网卡,在由网卡转发给程序(仅在将包转发给网卡时需要CPU,当网卡将包转发给程序时不需要),详细参考网络七层协议!

猫是如何将包发送到指定机器上的?

在此之前就要说一下什么是城域网:

城域网就是一座城市搭建起来的网络环境,每个街道,角落都有很多电缆/光缆,并且都有一个运营商!

也就构成了上海电信,北京移动等等!

这里就是说电信,假定我们在上海,我们想访问一个网站,但是这个网站在北京的某个地区的服务器上,那么此时我们就需要连接在北京的服务器!

如何发送到指定机器上?

那么此时呢,我们需要通过猫通过路线来发送包,这些路线就是光缆/电缆,其地区都有一个负责转发光缆或电缆脉冲信号的工作站,也就是假如你在上海,某个小区,那么这个小区附近就有一个这样的工作站,你的网线就连接在这个工作站(类似电塔的东西)里,当你发送一个包时,这个包的包头是有固定大小的,比如大小为8字节,其前四个字节包含着后面包的大小,后四个字节包含着MAC地址等信息!

那么假如我们发送了一个大小为2字节的包,加上包头总共十字节,每个电平脉冲信号只能表示一个bit位,所以需要:80个bit位来表示这一组字节,80个bit位就等于80个电平脉冲信号,所以猫为我们向这个工作站发送了80个电平脉冲信号,这些脉冲信号的电平值,不是随便发的,是根据字节bit位来发的!

假如我要发一个字节,数值为2,那么脉冲信号是:00000010(第一个位符号位),上面说过猫就相当于一个小型的计算机,当把数据转发给猫时,其实数据就已经被打包成二进制格式的了,猫只需要根据二进制的0/1发送对应的高低电平即可,至于电平伏大小取决猫,上面说过你的网线连接在你家庭住址附近的一个工作站里,这个工作站里也有一个小型的处理器,它会接收到猫通过网线发来的数据包,并把这组包发送给连接在工作站上的所有线路,然后这个线路在将这组数据包转发到其他地区,中途可能经过其他工作站,然后这个工作站在转发给它所连接的线路,也就是说你的网线可能也就连接在这个工作站上,你的猫会收到这组包,但是可能不会处理,下面在说为什么,你发送的包会通过这些工作站发送到世界各地!

就像有的时候你小区附近的工作站线路爆满了,你去电信或其他宽带办理商办理业务的时候,会告诉询问你的住址,然后看一下线路资源/网络端口是否足够用,不够的话则告诉你不能安装!

并且现在的网线或线路都是双管道/全双工的传输模式!

并且猫还拥有矫正功能,比如传来一个包,但是在传递过程中,受到打雷,闪电或由于目的地太远,中间也没有信号增强器,导致电平值衰落,导致这一组包不正确,但是猫能矫正3/1的错误,这就是猫内部自带的矫正算法!

这里说一下什么是信号增强器?

信号增强器是一般装在偏远的山区中,山区属于较偏僻的地方,工作站设立的较远,想要将包发送到互联网上,首先需要发送到工作站中,由于距离过远电,当电离开发送体在线路中传输一段时间电平脉冲信号是会不断衰减因为电是需要一中能量的打击才产生的物理现象,当电脉离开导电体就会不断衰减,在衰减的过程中可能造成信号丢失,所以需要信号增强,不然丢失太过严重,猫无法矫正的情况下就产生错包,或丢包的情况!

信号增强一般仅用于较远山区的电路,因为较近的情况下随意增强会导致数据包混乱!

还有一种是受到天气影响,电磁脉冲信号会受到闪电的影响会相互干扰(电与电之间会干扰)会导致数据包混乱,一般发生在打雷的情况下,因为打雷通常伴随着闪电,这种情况是不可避免的,只能在线路上做防护措施!

所以运营商已经花费大把精力和金钱在线路上了,确保线路导电传输速度,以及不会受到线路影响,选择好的材料,比如光缆就是替代普通电缆的一个例子!

光缆中使用的材料非常适合电流流动,可以有效提升电流速率!而普通的电缆仅能导电起到一个电流流动的过程,但容易造成电流不稳定的情况,会导致丢包等现象发生!

如何完成一次数据交换?

猫会将一组以太网包发送到连接在你网线上的工作站,工作站转接到连接在自己身上的线路,发送到互联网每一个路由器上,当指定路由器会收到这组包,会根据包的数据请求返回对应的数据,下面在详细介绍这一过程!

万维网:

上面说过猫会通过工作站将数据包发送到互联网上,这里来解释一下,再次之前先解释一下网卡地址:

网卡地址:

网卡地址是使用的是世界统一地址,也就是说这个网卡在诞生时它的地址就是唯一的,不像主板上的地址是从0x0000开始起始的,在网卡诞生时制造厂商就为其分配了一个全球48位的地址码!

重复问题:

MAC网卡地址是由一个中心系统维护的,当你生产一个网卡,想要分配地址必须到该中心如注册!

地址存储:

网卡地址是由厂商等其他信息组合起来的!并且被烧录在网卡中,网卡就=一个小型的CPU,有自己的存储器!

如何完成一次通讯?

网卡在接入到当地运营商互联网时,会被分配一个网络IP地址,即公网IP,只有公网IP才能访问公网上的资源,这是运营商所设定的,公网是你在当地运营商买的时候会送你一个,跟你注册时的身份证,上午用户名和密码是挂钩的!

公网也有两种:

固定IP,动态IP

固定IP:

即分配的IP每次接入互联网都是这个IP

动态IP:

要知道随着人口普及,互联网发展速度IV4IP开始变得尤为稀少,所以运营商想出一个办法,就是每次都给你重新分配一个IP,每次接入互联网都会给你分配一个空闲的IP!

给你分配的公网IP仅仅是互联网中的地址映射,所以实际上线路的确定还是猫内部网卡的地址,注意猫内部也有网卡,计算机内部的网卡是用于与猫通讯的!

 

网络地址:

即IP地址,用于互联网虚拟世界中的标示地址!

主机地址:

即实际地址,即主机网卡地址/猫网卡地址,上面说过网卡地址是世界上独一无二的,并且由网卡厂商根据生产信息注册并烧录到网卡中的,众所周知,互联网是通过物理链路(电缆、光缆)来与服务器/工作站进行数据交换的,在互联网中确定网卡地址的方式就是通过网络地址来找到对应的实际地址,猫向连接的所有物理链路发送APD广播,确定实际网卡地址,这样才能保证即使动态IP分配给了其他人,也不会出现数据乱收发的情况!

完整通讯过程:

假如当我们访问一个网站时,在知道网站IP的情况下,猫访问的是实际网卡地址,所以需要通过APD广播,通过工作站将此信息转达给互联网所有的猫(路由器)

当互联网的猫收到这个广播时会检查广播包里的IP是否与自己的IP一致,如果一致则返回给指定猫自己的网卡地址

那么此时双方会在自己内部形成一个链表将其记录下来,让IP与网卡地址形成映射,保存起来,便于下次通讯!

那么下次在通讯时,当我们要访问一个IP时,猫会在自己的链表里检查这个IP是否已经拥有对应的MAC地址,如果有则在包头里将IP更改为MAC地址,这样在对方路由器无需获取IP地址,可以直接根据猫网卡中的MAC地址进行校验,当下次对方IP地址变更时,猫也会重复上面的步骤,通过APD广播重新获取IP地址对应的MAC地址!

比如对方原本是193.2,后来更换成了193.1,这样发送时,猫在自己链表里找不到对应的MAC地址了,所以直接在发送一个APD广播,此时对方返回自己的MAC地址,猫发现原本链表里的193.2对应着这个MAC地址,所以就会直接将链表里193.2换成193.1!

为什么猫使用MAC地址?

答:这是以太网的一种协议,猫必须遵守,因为IP地址是随机变化的,有可能在你们通讯的过程中IP地址就发生了变化,所以为了确定正确性必须使用MAC地址!

假如使用IP地址,你的IP地址是193.2,通讯过程中突然换成了193.1,而193.2分配给另外一个人了,那么另外一个人就会收到这个信息,但是MAC地址是唯一的,所以当地址变更时猫能在链表里查出来,并重新通过APD广播获取新的IP地址!

上面说过猫会接受所有的包,但不是自己的不处理,其实我们可以在猫的设置页面将其猫的网卡设置成混杂模式即可接受所有包,但是接受了也不会被处理,因为包里的大多使用的是TCP/IP/UDP协议,这些协议需要socket套接字,不能保证机器下socket套接字是一致的,所以即便收到了,也不知道给哪个进程,所以直接就废弃了,但是我们可以编写一些抓包工具来抓到所有包,并分析!

注意当我们如果想要访问国外网站时,是没有办法将包转发到国外线路上的,原因很简单:

运营商会修改边界转发工作站的工作模式,在解析你发送的包,如果包里包含敏感IP则使工作站不转发此包!

因为访问国外服务器是有特定的路线的,这也是为什么部分国外网站可以访问,但是部分不让访问的原因!

如果想访问国外的网站需要特定的服务器转接,注意,大陆是可以访问香港服务器,而香港服务器可以访问国外网站,所以我们可以在香港设立服务器,并且在访问香港的服务器进行转接!

DNS域名解析:

DNS域名解析是指一个网站的域名与IP对应起来!

比如你服务器的IP是192.0.0.1,域名是www.xxx.com,当我们去申请这个域名时提供商会让你绑定一个IP,当绑定完成之后这个信息会被注册到特定DNS服务器下,当我们访问这个网站时,浏览器首先要通过DNS服务器找到对应的IP,也就完成了解析,才能访问!

DNS防火墙:

是指屏蔽掉一些敏感网站,当DNS接受到这一类网站时会返回ERROR,浏览器则表示解析失败!

但是通过一些其它地区的DNS服务器是可以解析的出来的,DNS服务器用的都是一个数据库,只是地区不同使用的服务器不同!

IP防火墙:

客户端所访问的信息都会被运营商所拦截转发,检查是否有试图访问一些不允许访问的IP,并屏蔽掉(包括你所发送的APD广播)!

公网IP也是全球统一网,也是由特定数据中心所管理的!

最后也可以知道局域的搭建环境!

局域网访问外网以及通讯过程:

局域就是一个大型猫,很多小型机器通过电话线连接到大型猫,并且通过电话线传递要访问的资源数据,由大型猫转发出去,在转发给指定机器,所以只需要一个公网就能完成多台机器同时上网的功能!

局域网IP是可以重复的,但是公网IP不行,在互联网中,公网IP是独一无二的的,局域网的IP是猫分配的,用于标示对应机器网卡的地址,这里机器网卡也起到了作用,猫只认电脑网卡的地址,来确定端口路线,其通讯过程也很简单:

首先猫在内部局域网发送一个广播来索要局域网下机器的IP对应的网卡地址!并绑定起来:

最后在通过数据包里的网卡地址来确定,对应局域网下的路线!

局域网内的数据收发:

猫通过每个包里的网卡地址来转发,公网上的路线也是如此!

比如A机器想要访问B机器下的资源,首先A机器需要知道B机器的网卡地址,A机器发送一个了一个IP地址给猫,猫通过IP地址发送广播给电脑网卡,网卡收到这个局域网包时会和上面一样检查是否是自己的IP,如果是,则返回给猫,猫确定之后会保存并绑定起来,那么就可以开始正常通讯了!

局域网到外网数据收发:

局域网下的机器将自己的网卡地址转发给猫和指定网卡地址,猫在接受到网卡地址时不会将机器的网卡写上去而是把自己的网卡添加上去,此时猫会开辟一个线程记录局域网下请求的IP一直等候着数据的返回,当收到指定网卡返回的数据时会将该数据返回给指定网卡!

当多台机器一起访问时猫就会请求多次,并开辟多个线程来等待着返回!并且这是无序的,线程会收发到数据后自动关闭,没有收到的就会出现丢包的现象!

至于收发包的大小,在协议头中已经有写出,所以线程清楚的知道自己应该接收多大的包,因为都是通过一根线来传输的,所以每次收发数据只有一个线程在工作!

物联网:

物联网是指将硬件产品接入到互联网中,最简单的列子就是智能家居,比如:洗衣机+互联网,我们可以在洗衣机的核心板上添加互联网信号接收器,然后我们在远程通过手机向其发送信息,让其自动洗衣搅拌,还有热水系统,假如说你在公司刚下班,想立马回到家洗个热水澡,可以通过手机一键烧水,热水器会自动放适当水量,烧适当的热度!

互联网+:

互联网+较为简单理解,就是电子商务,比如超市+互联网=京东,就是制作一个拍卖网站,用于拍卖超市物品,用户可以远程购买超市物品,并且拍卖结果会以互联网的形式传递给卖家,卖家会根据互联网传递过来的买家信息,将物品打包成物流形式发送给买家!

相关文章:后端开发知识

你可能感兴趣的:(HTTP/HTTPS协议原理,互联网,网络互联,通讯过程)