虽然我是计算机专业的,但是学校老师在讲课时只是照教材讲原理,不怎么联系实际,课程既枯燥又难懂。网络上的数据通信过程,我听完课之后还是属于懵逼状态。在我查阅了一些课外书籍和听了一些网课之后,才终于弄明白了通信的过程。下面我将以访问百度网为例来介绍一下日常的上网到底是怎么实现的。
1 计算机网络的一些基本概念
网络:许多计算机连接在一起。
互联网(internet):许多网络连接在一起。
因特网(Internet):全球最大的互联网。
ISP:网络运营商(如移动,联通,电信等)。
Internet:由很多ISP组成,有自己的机房,对网民提供Internet连接(ADSL或光纤到户)。
局域网LAN:覆盖范围小,网线最远覆盖100米,带宽10M,100M,1000M;带宽固定,需要自己花钱购买设备,自己维护。
广域网WAN:距离较远(各个小区),花钱买服务(花钱买带宽,钱多带宽高),运营商ISP给维护。不一定非得距离远,只要走了广域网线路(ADSL拨号上网属于广域网技术)(走运营商)就属于广域网。我们在家上网,都属于广域网。举例:假设某小区居民花钱买了电信的8M带宽,8M指的是小区到电信运营商那一段。只有访问电信里的服务器网站速度才快,访问别的运营商的服务器并不快。为了解决跨运营商上网慢的问题,现在有双线机房,即把服务器放在多个运营商的机房中。
2 计算机数据通信过程
预备知识:
DNS:负责把网站域名解析成IP地址。网站也有IP地址,分为网络段和主机段。举例:假设地址段为13.0.0.0,子网掩码为255.0.0.0(子网掩码就是用来说明哪段地址是网络段的,255对应的就是网络段。本例只有第一段13是网络段,后面三段都是主机段)。
网关:网关是指连接到其它网段时,应该连的那个地址,也即路由器的IP地址(路由器就是用来连接其它网段的设备)。
MAC地址(物理地址):出厂时就有,全球唯一。电脑网卡、服务器、路由器的每个接口都有唯一的MAC地址。
下面我以一个例子来说明我们在上网的时候都发生了些什么。
如图所示(图中蓝色设备是交换机,绿色圆圈是路由器),假设我们从IP地址为15.0.0.2的电脑去访问百度网:
2.1 从PC到服务器
开始上网:(电脑的IP地址为15.0.0.2,百度网的IP地址为13.0.0.2)
用户输入网址:http://www.baidu.com
首先需要DNS把网址里的域名www.baidu.com解析成13.0.0.2(因为百度在地址为13.0.0.2的服务器上)
计算机都配DNS,该电脑给DNS服务器发送数据包,DNS服务器有记录,查询后将所求IP地址发送回原电脑;第二次电脑发数据直接访问13.0.0.2地址,此时电脑发送的数据长这样:
从个人电脑到服务器的数据传输过程如上图(本图中的m几,代表MAC地址简写):
注意:交换机(图中蓝色设备)看的是MAC地址,路由器(图中绿色圆圈)看的是IP地址。
数据从m4的网卡出来,到交换机,交换机看到目标MAC是m5,转给路由器G;路由器看的是目标地址13.0.0.2;接着G路由器把原MAC地址和目的MAC地址改成m7, m8, 然后传到路由器A,A看到了13.0.0.2,需要传给B,A把原MAC地址和目的MAC地址改成m9, m10……就这样,数据在路由器的不断转发中到达服务器。总之,IP地址决定最终目的地,而MAC地址决定下一跳转到哪个路由。
2.2 从服务器到PC
网页普遍很大,数据包很小,不能一次性发送。因此服务器返回数据时需要把网页切割成小块,编上号。编完号之后的发送过程与之前的过程基本一样。