算是我第一篇技术性的科普博客。我尽量写好。
如今,除了某位【一指禅回车/双指悬空鼠标】人士之外,几乎所有人都会用手机/电脑上网。我们都很习惯在浏览器中输入所谓“网址”,回车,看到网页显示出来。那这个中间到底发生了什么?为什么输入www.baidu.com
会出现页面而输入www.google.com
就要🤫呢?为什么通过VPN就又可以了呢?
那一切就要从网络协议说起了。
什么是网络协议 Communication Protocol?
计算机之间互相交流信息,有点像人类互相交流——全世界科研人员各自母语不同,行文写作习惯也各不相同,怎么办?SCI期刊的解决方法是你们都用英文来写,都使用 Background、Method、Result、Conclusion的结构,这就算是一种协议 protocol 了。在网络里,信息的传输同样需要遵守一系列的协议,就是网络协议 Communication Protocol 了。
网络层次划分和网络协议?
都有哪些网络协议?
我青年时代就了解过以太网协议、TCP/ip协议、HTTP协议、HTTPS协议、FTP协议……
by 黄熊精
要弄清楚这个问题,我们首先要了解计算机网络的层级划分。
。简单起见我们就选四层的那个讲,从下往上。
链结层
计算机里的信息,归根结底就是一堆电子元件的开关排列,也就是0和1的排列(数字信号)。与它相对应的是模拟信号。
两种信号之间的转换需要调制解调器,也就是俗称的猫。
让2个计算机之间互相交流这些电流信号,最简单的就是拿根网线把它们的网卡接起来。
网卡
网络接口控制器(英语:network interface controller,NIC),又称网络接口控制器,网络适配器(network adapter),网卡(network interface card),或局域网接收器(LAN adapter),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。由于其拥有MAC地址,因此属于OSI模型的第1层。它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。没有任何两块被生产出来的网卡拥有同样的地址。这是因为电气电子工程师协会(IEE)负责为网络接口控制器销售商分配唯一的MAC地址。
wikipedia
那么3个?n个?——那也简单,搞一个集线器就可以把他们都串在一起了。信号会衰减?再加个中继器。
单纯这样连接的效果可以想象——一机发出信息,全网都能听到,我们称之为广播。信息中包含有发信主机的MAC地址,所有接收到信息的主机会将其与本机MAC比对,相同则接受信息,不同则忽略信息。
以太网协议
早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做”以太网”(Ethernet)的协议,占据了主导地位。以太网规定,一组电信号构成一个数据包,叫做”帧”(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。
“标头”包含数据包的一些说明项,比如发送者、接受者、数据类型等等;”数据”则是数据包的具体内容。”标头”的长度,固定为18字节。”数据”的长度,最短为46字节,最长为1500字节。因此,整个”帧”最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。
教练,能不能稍微控制一下那个广播的范围啊?一起广播堵车堵死啦——广播风暴。(这个会互相堵车的区域我们称为冲突域。)
——可以,于是就有了网桥,根据主机的MAC地址将网络分为2个区。
教练,能不能超过2个呢?
——可以,于是就有了交换机。
目前,局域网中的网络设备,基本上都是交换机。交换机是一种基于MAC识别,能完成封装转发数据包功能的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
引用来源
交换机效果拔群——可以“点对点私聊”了,还有负责网络寻址、错误侦测和改错的功能。
似乎有了交换机和MAC地址,世界上的所有主机都可以连接起来了?
并非如此。
交换机同样没有过滤广播通信的功能。如果目的地址是广播地址、或不认识的MAC地址,依然会通过广播的方式发送出去,它会向其所有的端口转发此广播数据包。因此,交换机和其所有接口所连接的主机共同构成了一个广播域。
并且,数据的传递而且局限在发送者所在的子网。也就是说,如果两台计算机不在同一个子网,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难。
引用来源
很像想象胡锡进发微博的手机和川普发推特的手机会在同一个子网络,这几乎是不可能的。
我们把子网连接起来吧——于是就有了互联网。下一次更这个系列会讲网络层哦。