文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

灵魂9问,光怪陆离的网络世界有哪些不为人知的秘密?(网络面试必考)

2024-12-11 19:34

关注

你有比皇帝更强大的八百里加急传书,1 秒之间就能和你的大臣聊骚、分享宫里生活、快乐、与悲伤;

全世界的人都在为你服务,你可以不用出门就买东西、订客栈、吃到贝加尔湖的皮皮虾、给大明湖畔的夏雨荷发红包;

......

互联网,改变了我们的生活。互联网也给我们提供了就业机会,让千千万万的人吃上一口饱饭。那,你有没有想过?这么传奇的东西,到底是通过什么方式走到我们的眼前?里面到底充斥着什么不为人知的秘密?

现在就请你和小熊一起走向今天的探索发现,一起揭秘 21 世纪最神秘的诡异技术 —— 互联网!

一、是什么组成了网络?

这是一张深圳地铁线路图。

就和这张图一样,网络(network)是由若干结点(node)和连接这些结点的链路(link)组成,就像深圳地铁线路图就是一张大网,由各个站点和站点之间的连线组成。

所有的结点可以是计算机、集线器、交换机或路由器等设备,所有的连线可以是双绞线、同轴电缆、光线等。

所有连入计算机的设备又被叫做主机(host)或端系统,除了电脑手机以外还有电冰箱、汽车、共享单车、交通信号灯、手环、监控摄像头等等奇奇怪怪的设备,目前2020年,起码有200亿以上的设备连入了互联网!

网络把很多计算机连接在一起,变成一个一个小的网络,比如家庭网络、公司网络、移动网络,把很多网络连起来就叫因特网(Internet,注意大写 I)

但是通通连起来还是不够的,我们发出去的信息和收到的信息最终会变成微信消息、游戏、邮件、网页等等,在这个过程中,到底信息来自哪里又将会去往何处?收发过程又经过了哪些处理?为什么我们可以享受网络服务?为什么会有如此多姿多彩的呈现形式?我们的数据安全又如何保证?

不要谎!让我们继续小熊说网络之为什么我们可以享受网络服务?

二、为什么我们可以享受网络服务?

从1993年开始,政府机构不再负责因特网的运营,这个时候无数的因特网服务提供商 ISP(Internet Service Provider)涌现,比如中国电信、联通、移动,为了给广大人民群众实现联网。

ISP 向Internet管理机构申请很多IP地址,大ISP自己造通信线路,小ISP就租他们通信线路以及各种联网设备。

我们就只要向ISP交钱获得IP使用权,就可以接入到互联网了。

所以所谓上网就是指“通过某个ISP获得的IP地址,接入到因特网”

IP地址管理机构不会把单个IP分配给单个用户,而是把一批IP有偿租用给合格的ISP,所以因特网就是无数的ISP共同拥有的,这种现象被称为“网络中的网络”

不同的ISP根据其规模大小被拆分为不同层次,覆盖面积最广的就是主干ISP,通常为国家级范围,其次是地区,借助一个或多个主干并联,最后是本地ISP,可以直接连主干,也可以连地区,也就是我们最常用的(比如公司内网私有云、学校、公有云厂商)。

任何一个ISP(除了顶层)都可以和多个ISP互联,成为他们的下级,也就是多宿(multi-home), 这时候即使提供商之一出现问题,他仍然不会断网。

那么问题来了,用户那么多,主干ISP就那么几个,肯定要涵盖超大的网络数据流量,就算他有最大的带宽,可以完成流量交换,但是距离越远传输速度越慢是亘古不变的真理,如果先把相邻地区流量转发到千里之外再转发回来,是一种对网络资源的浪费。

为了避免这种浪费,一种更有效快速的转发方式出现了,那就是因特网交换点 IXP (Internet Exchange Point)

IXP充当一个桥梁的作用,如上图,右侧两个地区ISP就是通过IXP连接起来,相当于“绕过”了最高ISP,这部分的流量就不用给主干ISP付钱了,也降低了网络延迟。

既然IXP可以省钱,让别人接入IXP明摆着是赚钱的事,钱谁都想赚,那么IXP是谁来建,谁运营,谁维护,如何收费,谁让主要的 ISP 愿意接进来,那就要各显神通了。

举个例子,如果在深圳内有一个NAP/IXP点,深圳移动用户访问深圳电信网络就可以不出市,费用按NAP/IXP的博弈价格收费,便宜多了,从整个大网的拓扑看,流量确实也得到很大的优化。

这个时候BAT在干嘛呢?BAT 严格意义上来说不属于ISP,他们是提供内容的,所以被叫做因特网内容提供商 ICP(Internet Content Provider),内容供应商有内容,他们的数据中心需要和运营商网络互联互通,才能被他们的用户访问。

一般是拉通了专线边界网关协议 BGP(Border Gateway Protocol),简单来说你向BAT发消息,他们就近原则回消息,根据你访问的源地址,判断消息从哪里过来的,如果是电信,就走电信的线路回去。如果是联通,就走联通的线路回去。

[[333739]]

以前互联网数据中心 IDC(Internet Data Center)都是运营商的,为了让自己的服务跑的更快,现在是 BAT都自建数据中心,也就是云,多余的计算资源也向外提供,把计算放到云上,这就是云计算,尤其是阿里和腾讯的云服务很不错。

如果一个IDC同时也是一个IXP点,网络的互联互通就是楼道之间的布线,不但成本低,而且更稳定(不用担心光缆被挖断)。这个IDC的网络质量就比普通的IDC要优秀,也就更值钱。这种模式就是现在火热的互联网盈利模式,IXP可以不赚钱,IDC发大了。

再结合一个叫软件定义网络 SDN(Software Defined Network)的东西,特别是可编程路由,使得路由可以根据业务需求,流量需求,怎么省钱怎么来,用他来充当IXP的角色,成本比路由器还要便宜,而且可以按需调度,可以支持复杂流量工程,以实现分布式拒绝服务(DDOS)防止被攻击。

三、为什么不同国家的计算机能听懂对方说的话?

至此,关于为什么我们可以享受网络服务这个问题,你应该非常清楚了!主机和主机要达到交流的目的,就需要秦始皇这样的人做语言大一统,让计算机之间就能听懂对方传递的信息,并且准确的转换成人类可理解的语言。

语言大一统的交流办法就是这一节的主角协议 (Protocol)

举个栗子,上面是一个马春花的老公和他朋友的聊天过程,一个人先发起,另一个人应答,上图中的男人说“是那事吗?”就是一个应答,应答中隐含了一个暗示,我在等你接着说。当然,他也可以拒绝回答。

询问、回答确认或者询问得不到回答,都是基于人类会话协议的交互过程。

在我们人类会话协议中,询问内容就是我们发送的报文,也有根据报文的应答报文和其他事件采取的动作(例如,等待一段时间没有任何应答)

如果人们使用不同的协议,比如听不懂对方的语言、另一个人是不想说话,这个交互过程都无法进行。

网络协议类似于人类协议,只不过把对话的人换成了某些硬件和软件设备(例如计算机、手机、路由器),他们之间使用的都是同一种语言(byte 流,最终解析成电信号),严格受协议的制约。

协议无处不在,上面的图就表示一个计算机网络通信协议的简单表述过程。

[[333742]]

协议 (Protocol):定义在两个或多个通信实体之间的报文样式和顺序,以及报文发送和接收一条报文/事件所采取的动作。

至此我们揭秘了互联网到底是如何传递信息的,以及是如何组成的,让视野回到手中,拿起手机连上wifi,揭秘网络的边缘。

四、为什么我的电脑、手机、ipad 都能在家里连网?

之前我们讲过,和因特网连在一起的所有计算机和其他设备(服务器、移动穿戴设备等)都被叫做端系统,端和边缘都是指网络的末端,牢记这个概念。

至于如何连接起来的,要归功于光、电、波三大技术,是不是突然发现《模电》、《数电》、《数字信号处理》不是白学的了。

边缘路由器(edge router)就是把本地端系统连接到任何远程端系统路径上的第一台路由器(比如常说的“猫”),而把端系统物理连接到边缘路由器的网络就叫接入网。

最早的接入方式是用电话线和电缆,电话公司就是ISP,通过数模转换得到数字型号,家到ISP通过双绞铜线连接(搓成麻花状的铜线)

因为这些线不仅要承载高频段网络数据传输,还要承载低频段的双向电话信号传输,材料又是铜线,所以传输速率受限。

之所以电话信息和网络信号之间不会有影响,可以回忆一下当时学的滤波器原理。

为了快,又发展出了混合光纤同轴系统 HFC(Hybrid Fiber Coax), 电缆接到用户家里,还是用本地电话的基础设施,光缆从有线电视公司接出。

再发展出光纤到户,速度快的不是一点半点,不过只有人员密集的小区才会配备,如果没配备自己想单独拉一条光纤,要花上万元。

其中一种光纤连接方式叫被动光纤网络 PON(passive Optice Network),就是把很多家庭的光纤通过光纤网络端接器 ONT(Optical Network Terminator)开始,连接到临近的分配器,汇聚成一条光纤,最后连接到本地中心局(CO,centeroffice)(链接用户到通信运营商的交换网络),实现上网。

当然,上面都是说怎么连出去,家里一般有很多设备,他们会组件成局域网(LAN),通过猫(DSL)或者交换机来连接。

但是我们在用的时候总不能给手机插个网线吧,为了达到移动用网的目的,我们更需要一些无线连接方式,也就是熟知的wifi、蜂窝网络(2G、3G、4G、LET)。

好了,我们知道端系统之间是怎么连接起来的了,那端与端之间又是通过什么进行通信的呢?又是谁在给我们提供应用服务呢?肯定不是中间躲着一个接线员,人工识别信号请求再发送网页给你,要真是这样,100 个接线员服务一个人都不够。

需要一些端系统来充当服务器,端系统又被叫做主机,可以划分为两类 客户(client) 与 服务器(server),客户一般是指个人电脑、手机、ipad等设备,一般指可以接触到并拿在手中,只要连网就可以享受服务的设备。

服务器是指存储和发布web网站、视频、中继电子邮件等的大型计算机或者数据中心,这些数据中心里面可能有数十万台服务器。

在他们之间我们熟知的有两种通信方式,客户机-服务器方式(C/S)和对等方式(P2P)。

客户机-服务器方式是最常用的,我们平时用手机上网就是一个最典型的呈现:

客户端知道服务器的地址,主动向服务器发起通信,服务器可同时处理多个远程客户的请求且永远不停机的运行。

对等方式,是指两个主机在通行时可能又是服务请求方也服务提供方:

图片来自百度百科

非常著名的某网盘就是用的这种技术,为了实现加速,你下载文件以后,假如周围的人要下载同一个文件,就会把你的电脑当作服务端进行就近传输,如果周围很多人都下载了这个文件,就会有很多个服务端,分别下载文件的不同部分,最终汇总成一个完整的文件来达到加速的目的。

第四节我们学会了边缘网络的接入方式以及通信方式,联系上面的章节我们知道了网络的各种连接方式,也知道中间有ISP、IXP、ICP,但是并不知道,客户端发送一条信息,怎么通过千山万水准确的到达服务器,下一节我们来缕一缕这个过程。

五、为什么郭杰瑞在美国发送一条视频,远在中国深圳南山科技园的我能收到?

这一节讲网络核心,着重讲转发表与路由选择协议。

不用担心封号,我已经打码了。

郭杰瑞最近在做战地记者,我最近老是在微博上收到他的视频推送,冷静下来一想,为啥他在那么远的地方发个消息会被我刷到,难道是因为什么特别的缘分?怪不得说网络一线牵,珍惜这段缘。

排除了网络的边缘就是网络的核心了,也就是一堆分组交换机和链路构成的网状网络。

当然,还有两种交换方式叫电路交换和报文交换,但由于分组交换的效果最好,这两种方式都用的很少。

在各种网络应用里,端系统之间彼此交换报文(message),报文里包含了协议,可以传输文本也可以传输数据,比如视频、音乐等。

从源端系统向目的端系统传输报文时,长报文会被切分成碎片,称之为分组(packet),每个分组就是一堆byte的集合(可以理解为10101100这样的高低电平),通过通信链路和分组交换机(路由器和链路交换机)进行传输。

但是呢!路由器只能从相连的一条链路得到分组,再转发给另一个相邻的链路,啥意思?就是完全没办法一下子从美国发信息直接发到深圳。

这是因为路由器内的存储空间是有限的,根本不可能把全世界那么多设备的位置都存起来,即使是能存得下,如果黑客改变了里面的内容,岂不是可以随便伪装成任何人了。

所以聪明的程序员设计出了转发表和路由选择协议,负责把目的地址的一部分映射成输出链路,如果把路由器比喻成人,把报文比喻成信件,我们只能靠问路来寄信!

每个人就只知道大概方向、以及距离更近的路由器位置,每次问路都会距离目的地更近一点,每次问路结束都会知道下一个更近的人的位置,就这么一路问过去,直到投递成功。

每台路由器具有一个转发表(forwarding table),负责将目的地址(或目的地址的一部分)修改为适当的输出链路,你就距离目的地更近了一步。

当然,不是漫无目的的修改,会通过一系列的算法,选择出最优路径,一般是在16跳(16次)以内就能到达任意位置这就是路由选择协议(routing protocol)的内容,如果感兴趣可以自己下来查查。

你可以登陆www.traceroute.org,随便选择一个源,输入你的真实ip或域名,看看他是怎么跳转的。

我选了美国的一个AS 1221节点和百度的域名,经过了13跳才到达目的地。

六、为什么网络要分层?

就上面说的那些东西可以发现,网络实在是太复杂了,复杂和复杂的系统进行交流,需要分工明确,各司其职,具体是怎么分层的呢?

做过运维、实施以及做web开发的同学可能听过四层、七层负载均衡,其实无非是绑定ip还是绑定域名的区别。

图来自计算机网络-谢希仁

从第七层到第一层,分别对应了不同的一个数据包(报文)在不同解决的不同处理办法(协议),每个报文在传输出去的时候会经历打包的过程,套七层外套,在接收和传递的时候会经历拆包的过程,脱下七层衣服。

每一层都会携带一些关键信息给对应的设备识别,为了保证输出包顺利的投递,在传输过程中会经历很多设备,也会经历很多次拆包打包。

看右边的图 c,计算机是五层架构,在源设备上,一个应用层的报文(HTTP 报文)被传送给运输层(也称传输层),传输层套个壳(TCP 首部),附加上自己的信息(允许接收端读取应用层信息,差错检验位信息防止传输途中被篡改),我们熟知的TCP和UDP协议就是在传输层起的作用

然后继续传递给网络层,增加源和目的端系统地址(如IP地址)等信息(IP 首部),让接受端知道包是从哪来的

然后传递给链路层,他会把数据包组装成帧(framing)也就是之前第五节说过长报文切分成短报文的分组(packet),每帧包含数据和校验必要的信息(同步信息、地址、校验信息等)(以太网首部),链路层会加上MAC(Media Access Contol 介质访问控制)地址,将一个数据帧从一个节点传送到相同链路的另一个节点

然后传递给物理层,加上连接电缆的插头有多少根引脚以及如何连接等类似信息

发送出去以后下一个物理设备就会拆包,如果是二层交换机就会拆掉链路层和物理层,如果是路由器还会多拆掉一个网络层,再打上自己的信息和下一跳的信息,继续传递。

交换机和路由器的区别就是,路由器在网络层,可以处理TCP/IP协议,可以把一个IP分配给多个主机而交换机不能,交换机在链路层是根据MAC寻址,可以提供防火墙功能而路由器不能。路由器主要用来连接多个网络,交换机主要用来使局域网连接更多计算机。

常见家用交换机是指二层交换机,现在有三层及三层以上的交换机可基于网络层甚至传输层工作。

整个分层的传输过程如下图:

来源《计算机网络-自顶向下方法》

上面没有提到会话层和表示层,我个人的理解这两层从来没有独立实现过,都是和应用层在一起实现。一般的程序员都是在应用层编程,应用层主要加入了会话保持、断点下载能力,表示层主要是做数据加密解密压缩以及转码(虚拟终端协议 VTP,定义了统一的字符集、终端命令、格式控制符等等)的工作,比如大部分主机使用ASCII码,IBM 主机使用 EBCDIC 编码

还有一个安全加密层,很多人都使用过,只是一直没有人想去划分层次结构,它的名字叫SSL/TLS,有了安全层提供的服务,位于应用层的HTTP/SMTP/FTP,都可以在其名字后加一个S(Security),比如HTTPS,其实这个世界压根不存在HTTPS协议,只有HTTP协议,加上 S 的后缀只是告诉大家HTTP使用的是六层结构,有了SSL/TLS的安全保护。

七、为什么明明我办了 100M 的宽带,却怎么也跑不满?

得嘞,郭杰瑞的视屏是收到了,我就是不喜欢直接播放,就是要把他全部打包下载下来,但是我发现明明是100M的宽带,为什么我的网速达不到100M/s呢?几乎所有人都有这样的疑惑

100M的带宽,实际上网速只有可怜的12M/s,此兆非彼兆~

100M宽带的正常速度就是100 Mbit/s,只是单位不同而已 8bit=1B , 我们关注的是MB/s,所以100 Mbit/s = 100/8 = 12MB/S

八、为什么打游戏、看视频会卡?

ok ~,站在后排的同学就不服了:“你说是12M/s的速度我也认了,为什么现在卡的只有1M/S? 小熊这你又怎么解释?”

感叹一句,只要套路深谁把谁当真,作为用户感觉总是玩不过运营商,总感觉花了钱,享受不到服务,其实只要在高峰期刷视频就很有可能这样子。

所以是为什么高峰期就会卡,不应该是我独享的宽带吗?事实上是共享的,在介绍为什么共享之前,先介绍下传输过程中产生的速度损耗。

还是让我们回到最常用的分组交换,分组交换我们说过,他把报文切片,变成一个一个的数据包进行传输,在传输给分组交换机的时候,交换机本身会进行一些包检查,这里浪费的时间叫节点处理时延(nodal processing delay)

多数分组交换机在链路的输入端使用存储转发传输(store-and-forward transmission)机制,在交换机输出该分组的第一个比特之前,必须接收到整个分组,这个等待的时间叫存储转发时延

在分组交换机接收完毕整个分组数据以后,肯定要继续传输到目标主机上,每个分组交换机上都连接了很多链路(主机),每条链路都有一个输出队列(output queue,也称输出缓存)

假如某个分组需要传输到某个链路上的主机,而这条链路被另一个分组传输占用了,那么这个分组就必须在输出队列里排队等待,这个等待的时间叫排队时延(queuing delay),类比收费站排队等待过关时浪费的时间。

但是输出队列的缓存空间是有限的,如果他被撑爆了,将会出现数据丢失,这又被称为分组丢失(packet loss),俗语叫丢包。

收费站收钱,然后给卡的过程浪费的时间,叫传输时延(transmission delay),也就是分组交换机发出去那一瞬间浪费的时间,一般极短。

传输出去以后,数据在路上跑,跑到下一个交换机之前,在路上浪费的时间叫传播时延(propagation delay)

在整个过程中,端系统经过一个一个的路由器/交换机,最终到达目的端系统浪费的总时间叫端到端时延,也可以用第五节提供的跟踪工具可以看到三次握手分别浪费的时间,是不是很酷。

一根100M带宽,如果全部跑满,他的峰值吞吐量(throughput)就是12Mbps,吞吐量就是单位时间内成功地传送数据的数量(以比特、字节、分组等测量)

我们的家庭网络一般都是使用局域网(LAN)接入,其实也是带宽共享的一种。一般来说,整个小区是一个局域网,与电信骨干网相连接的带宽总出口如果有100M,也就是说,如果小区内有一百人同时在线,那么就是有一百人在共享这100M的带宽,因此,共享带宽下的宽带接入,在上网用户稍多时可能速度会有所降低。

在宽带较不普及的小区,共享带宽会有很高的性价比,因为共享带宽比较便宜,又正好没人和你抢带宽;但如果在宽带较普及的小区,可以用ADSL(全称为 Asymmetric Digital Subscriber Line,非对称数字用户线路),每个用户的网络终端都有单独的一条线路与ADSL局域端相连,可以保证所有带宽是由每一用户独享的,即使用户激增,其速度也不会减慢。

但是现在都到21世界20年代了,ADSL是用电话线上网,最大理论上行速率可达到 1Mbps,下行速率可达 8Mbps,早被淘汰了,老老实实用LAN,办大一点的宽带才是王道,有线有条件直接拉光纤,我在网上查到的市场价,100M的光纤大概一年一千多,不过就得你们小区有没有了。

附两个简单直接的增强wifi信号方法:

其他方法以后再说。

九、为什么你的电脑会受到攻击?

目前的互联网已经全面覆盖了我们日常的工作、生活,包括各种政府机关、企业学校,无数的可穿戴物品、家用智能设备通通都和互联网相连,在互联网某个阴暗潮湿的角落,有一批人专注攻击破解、盗取用户个人信息、侵犯隐私、盗取政府、银行资料,秘密调取账户资金,所以在享受互联互通便利的同时,网络安全值得我们的重视,好在有一批大侠,默默在各行各业守护我们的网络,他们就是白客(不是王大锤)。

假如你正在和你心爱的女孩在网上聊天,你肯定不希望聊天内容被第三个人看见,这就是网络安全的机密性。

你看不到她的样子听不到声音,你要确保和你聊天的人真的是她,而不是中间有人截获信息和伪装成她,这就是端点鉴别技术。

即使真的是他,你也希聊天内容不要被中间人篡改,曲解她的意思,这就是报文完整性。

你希望聊天软件不要突然崩溃,也希望不要因为接收什么奇怪的文件导致手机上的相片、银行卡验证信息被别人知道,在聊天真的被监听、以及伪装的时候,你也希望快速的发现,或者在源头上规避这些风险,这也就是网络安全存在的意义。

1. 被黑客盯上的攻击目标有哪些?

2. 让我们来看看他们的攻击方式!

以上方式不包括一些未知的方式。

3. 如何防范?

你还有什么互联网安全的防范方式,可以在评论区和我讨论!

总结

这篇文章通过九个问题带你进入了网络世界的大门,看完以后你应该了解了

我们为什么可以联网、信息是传递和接收的过程、是谁在给我们提供互联网联网服务和内容服务、网络通信协议和分层、互联网中的各种网络设备以及他们的作用、网络安全常见攻击手段等内容。

感谢你的阅读和关注,我们下次再见。

 

来源:编程三分钟内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯