今天的因特网无疑是有史以来由人类创造的、精心设计的最大系统、该系统由数以千计的计算机设备(计算机、平板电脑、智能手机)彼此相互链接构成,而且还有一批与因特网相互链接的物品好比游戏机、监控系统、汽车、医疗设备、智能眼镜、手表、运动手环等,随着5G时代的到来,万物互联也愈来愈称为可能,这里推荐一下 尤瓦尔·赫拉利 的《将来简史》,这我的的格局很高,他书中描述的将来也愈来愈成为现实,他写的文字能让你感受到你更想变为计算机世界里的一片硅片。git
可是,面对互联网如此巨大且迅速的变化,咱们能作些什么?我在地铁站等车的时候常常被地铁广告洗脑,鼓吹人工智能发展的多么牛逼,鼓吹你们都成为人工智能的高端型人才,我不可否认这个操做,可是我认为人工智能并不适合每一个人,并且人工智能须要的技术和知识储备是巨大的,因此,与其憧憬成为人工智能的高端型人才,不如把眼下的计算机基础知识学好,你的将来才会有更多的可能性。毕竟,一切计算力发展的源头都是计算机,也能够说如今互联网一切的衍生物都是计算机的儿子。web
说到计算机基础,就不得不提计算机网络,就像人长大后是须要和外界进行交流同样,计算机网络也是计算机彼此通讯的必要条件。若是计算机的创造比如新中国成立,那么计算机网络的出现就至关因而改革开放。而且计算机网络是每一个软件工程师必需要学好的一门知识。扯了这么多,下面开始进入正题,一展计算机网络的宏图。浏览器
首先来聊一下因特网是什么,wiki 对它的定义是:因特网是一个全球范围的互联网系统,它使用 TCP/IP
协议簇来连接全世界的设备。咱们能够从两个方面来描述一下因特网服务器
咱们先从第一条描述开始网络
因特网是一个世界范围的计算机网络。说到因特网的构成,就不得不提构成因特网的组件是什么,还记得咱们开头提到的因特网设备吗?智能手机、平板电脑,智能电视,智能家居,游戏机,手表,汽车,眼镜,温度调节系统,这些构件在因特网中有个专门的术语,全部的这些设备都被称为主机(host)
或者端系统(end system)
,一提到主机你是否是想到的是计算机的主机?这两个主机的领域虽然不一样,可是它们的做用是相同的,都是系统的大脑
。据保守性评估,2015年已经有大约50亿台设备接入了因特网。而到了2020年这个数字将会变为250亿。less
那么这些主机或者端系统之间是如何进行通讯的呢?实际上,端系统经过通讯链路(communication link)
和分组交换机(packet switch)
链接到一块儿。socket
通讯链路:指的是因特网中两个节点之间的物理通道。通讯链路的传输介质有
双绞线
、光纤
和微波
分布式分组交换机:网络交换设备,它主要包括三个基本部分:交换单元、接口单元和控制单元。ide
不一样的链路可以以不一样的速率进行传输数据,称为链路的传输速率(transmission type)
,以 比特/秒(bit/s,或 bps)
进行度量。当一台端系统要向另外一台端系统发送数据时,发送端系统将数据分段,并为每段加上首部字节。由此造成的信息包用计算机网络的术语称为分组(packet)
,这个分组的概念很是重要,之后咱们会常常提到。这些分组经过网络发送到目的端系统,在那里被装配成初始数据。性能
分组交换机从它的一条入通讯链路接收到达的分组,并从它的一条出通讯链路转发该分组。分组交换机的种类有不少种,最著名最多见的分组交换机就是路由器(router)
和 链路层交换机(link-layer switch)
,一个分组所经历的一系列通讯链路和分组交换机称为经过该网络的路径(route 或者 path)
。
上面讲述的名词肯能比较晦涩,若是你不是很理解的话,就能够把分组在交换网络中的传输比做是 运输车在高速公路上的运输
,分组相似于卡车,通讯链路相似于高速公路,分组交换机相似于交叉口,端系统相似于建筑物,就像卡车须要从某一建筑物的起点通过高速公路和交叉口到达另一个建筑物的过程。就像卡车须要选取一条路进行运输同样,分组也选取计算机网络的一条路径前行。
端系统经过因特网服务提供商(Internet Service Provider,ISP)
接入因特网,包括如本地电缆或电话公司那样的住宅区 ISP、公司 ISP、大学 ISP,在机场、咖啡馆或者公共场所所提供的 WiFi 接入的 ISP,以及为智能手机或者其余设备提供移动接入的蜂窝数据。
咱们国家的 ISP 主要有三大基础运营商,中国电信、中国移动和中国联通。
端系统、分组交换机和其余因特网部件都要运行一系列的 协议(protocol)
,这些协议控制因特网中信息的接收和发送。其中 TCP
和 IP
协议是因特网中最重要的两个协议。IP协议定义了在路由器和端系统之间发送和接收的分组格式。因特网中的协议统称为TCP/IP
,而不仅仅指的是TCP 和 IP 两个协议。
那么这些协议是由谁制定的呢?实际上,这些因特网协议或者称为因特网标准是由因特网工程任务组(Internet Engineering Task Force)
上面咱们描述的因特网是从硬件和软件层面进行说明的,除此以外,咱们还能够经过为分布式应用提供服务的联网基础设施来描述因特网,这个概念比较抽象,咱们仍是举例子说明一下。除了传统应用程序就像是电子邮件和web 冲浪外,因特网应用还包括智能手机和平板应用程序,这些应用程序中又包括像是即时通信、来自云的音乐流、电影和电视流、在线社交网络、视频会议、多人游戏和基于位置的推荐系统。由于这些应用程序涉及多个相互交换的端系统,因此这些应用被称为分布式应用程序
。重要的是,因特网应用程序运行在端系统上,而不是运行在网络核心的分组交换机中。
咱们来深刻的探究一下,由于应用程序可能会运行在端系统上,因此你须要编写使其运行在端系统上的程序,你可能会使用 C、Java、Python 来编写。如今,由于你开发了一个分布式应用程序,这个程序运行在不一样的端系统须要彼此发送消息。此时咱们碰见一个核心问题,那就是一个运行在端系统的应用程序如何让其余运行在端系统的应用程序收发数据呢?
接入因特网的端系统提供了一个套接字接口(socket Interface)
用于和其余端系统的应用程序收发数据。这个因特网套接字是应用程序必需要遵照的约定。
既然咱们已经对因特网有了一点概念了,下面咱们就来探讨一下因特网又一个很重要的概念那就是协议
,协议就至关因而人类活动所遵照的约定。
理解计算机网络协议最简单的方式就是把它抽象为咱们的生活,由于咱们人类无时无刻都在执行协议。考虑一下当你想向其余人询问当前时间的时候你会怎样作?下面是一个典型的询问方式
上图是一个男女双方都比较友好的对话,那么假如女方回答:"请不要烦我",或者说我不会说中文等等相似不合时宜的回答形成双方再也不对话,那么此时就会形成中断。一般状况下,发问者就会放弃继续询问。那么形成上述中断的缘由是什么呢?是否是男女双方没有就询问时间
这个话题达成一致呢?也就是说,协议最重要的一点就是为了完成一项工做,须要两个(或多个)通讯实体遵照相同的协议。
网络协议很是相似于人类协议,除了通讯双方由人类变为乐计算机载体,哦,协议也会不同。以你们熟悉的一个计算机网络协议为例,考虑当你向一个 Web 服务器发送请求时(即你在 Web 浏览器中键入一个 Web 页面的 URL)所发生的状况。
首先,你的计算机会向 Web 服务器发送一条链接请求报文,并等待该服务器的响应,等到服务器发送响应到计算机以后,计算机会从新发送一条 GET 请求报文到服务器,最后,Web 服务器向计算机返回该 Web 页面(文件)。
根据上面两个例子你能给的出协议的定义了吗?也许下面这个定义会比较准确呢
协议(protocol)定义了在两个或多个通讯实体之间交换报文的格式和顺序,以及报文发送和/或接受一条报文或其余事件所采起的动做。
因特网普遍的采起了各类各样的协议,不一样的协议用于完成不一样的通讯任务。掌握计算机网络领域知识的过程就是理解网络协议的构成、原理和工做方式的过程。
回想上一节中计算机网络的术语,一般把与因特网相连的计算机和其余设备称为端系统。
如上图所示,由于它们位于因特网的边缘,故而被称为端系统。因特网的端系统包括了桌面计算机(桌面PC、Mac 和 Linux 设备)、服务器(Web 和电子邮件服务器)和移动计算机(便携机、智能手机和平板电脑)。
端系统也称为主机,即端系统 = 主机。后面一说主机也就指的就是端系统。主机进一步也能够划为两类:客户(client) 和 服务器(server)
。客户一般是桌面 PC,移动 PC 和 智能手机等,而服务器一般是更为强大的机器,用于存储和发布 Web 页面、流视频、中继电子邮件等。
考虑了位于网络边缘
的应用程序和端系统后,咱们接下来考虑一下接入网
,接入网指的是将端系统物理连接到边缘路由器(edge router)
的网络。边缘路由器指的是端系统到任何其余远程端系统的路径上的第一台路由器。
DSL
咱们通常家庭最经常使用的接入方式就是数字用户线(Digital Subscriber Line)
和 电缆
。住户一般从提供本地电话接入的本地电话公司处得到 DSL 因特网接入。
先来看一下这幅图片吧,DSL 调制解调器是容许你的计算机经过 DSL 链接与 ISP 进行通讯的硬件设备。每一个用于的 DSL 调制解调器使用现有的电话线(双绞铜线)与位于电话公司的本地中心局(CO) 中的数字用户线接入复用器(DSLAM) 交换数据。
在计算机网络中,上游是指能够将数据从客户端
传递到服务器
(上载)的方向,上游的速度很是宝贵。下游是指从网络提供商
发送给客户
的数据。
上图中有三条电话线,它们使用不一样的频率进行编码
这种方法使得单根 DSL 线路看起来像拥有三根同样,所以一个电话通道和一个因特网链接可以共享 DSL 链路,在用户的一侧,一个分配器把到达家庭的数据信号和电话信号分开,并将数据信号转发给 DSL 调制解调器。在服务提供商一侧,在中心局中,DSLAM 把数据信号和电话信号分隔开,并将数字信号发送给因特网。数百上千的家庭与一个 DSLAM 相连。
DSL 中定义了多个传输速率,DSL 的传输速率由服务提供商来决定的,根据价位的的不一样,会有不一样的传输速率,而且实际的上传下载速率要比理论上的速率要慢不少,好比我家是 50M 光纤,实际也就是 30M 这样。
电缆
DSL 利用电话公司现有的本地电话基础设施,而 电缆因特网接入(cable Internet access)
利用了有线电视公司现有的有线电视基础设施。用户从有线电视公司得到了电缆因特网接入。以下图所示
这种接入方式使用了同轴电缆
和 光纤
两种接入方式,所以被称为混合光纤同轴
接入系统。
电缆因特网接入须要特殊的调制解调器,这种调制解调器称为电缆调制解调器(cable modem)
。和 DSL 类似,电缆调制解调器一般也是一个外部设备,经过一个以太网
端口链接到家庭 PC,在电缆的头部具备和 DSLAM 类似的功能,即未来自许多下游用户中的电缆调制解调器发送的模拟信号转换为数字形式。
电缆因特网接入的一个重要特征是共享广播媒体
,由头发送的每一个分组向下行经每条链路到每一个家庭;每一个家庭发送的每一个分组经上行信道向头部传输。所以,若是几个用户同时经下行信道下载一个视频文件,每一个用户接受视频文件的实际速率将大大低于电缆总计的下行速率。
光纤
DSL 和 电缆网络在3年前仍是提供网络接入的主流,可是如今却有一种更高速的新兴技术是光纤到户(FTTH)
。最简单的光线分布网络称为直接光纤
,从本地中心局到每户都设置一根光纤。还有一种是从本地中心局拉出来的光纤被每一个家庭网络共享,光纤部署靠近用户的位置才会分为光纤网络为每一个家庭接入。
光纤分布体系结构
就值得是光纤遍及的光纤网络,分为两种:主动光纤网络(AON)
和 被动光纤网络(PON)
,AON 的本质是交换因特网,这个比较复杂,后面的文章会进行介绍,这里咱们先介绍一下被动光纤网络 PON,下面是 PON 的因特网接入图
上图显示了使用 PON 分布体系结构的光纤网络。每一个家庭具备一个光纤网络端链接器(Optical Network Terminator, ONT)
,它由临近的光纤分配器进行分配。中心局有一个光纤线路端链接器(Optical Line Terminator, OLT)
。 OLT 提供了光信号到电信号的转换,经本地电话公司路由器与因特网相连。在每一个家庭中,一般使用路由器与 ONT 相连,并通过这台家庭路由器接入因特网。
光纤有潜力提供每秒千兆比特范围的因特网接入速率,然而,服务提供商根据不一样的网络传输速率来收费,较高的速率固然花费更多。
在公司和大学校园以及愈来愈多的家庭环境中,使用局域网(LAN)
将端系统链接到边缘路由器。尽管有许多不一样类型的局域网技术,可是以太网
是目前为止公司、大学和家庭网络中用的最为流行的接入技术。
以太网
以太网是一种链接局域网的传统技术,它可以使设备经过协议(一组规则或通用网络语言)相互通讯,以太网的接入设备能够相互识别对方。
我以前一直想了解以太网是怎样工做的,可是一直没有细致的了解,如今就来挖一下以太网的工做流程!下面是以太网的接入过程
以前的以太网用户使用双绞铜线
与一台以太网交换机相连,以太网交换机或这样相连的交换机网络,则再与更大的因特网相连。使用以太网接入,用户一般以 100 Mbps 或 1 Gbps 速率接入以太网交换机,而服务器可能具备 1 Gbps 甚至 10 Gbps 的接入速率。
而最新的以太网用户可使用双绞线和光纤线路以及交换机接入。以太网传输速率从 2.94 Mbit/s 提升到最新的 400 Gbit/s 。
有线和无线
在往下进行前,须要先讨论一下有线和无线的关系
有线
顾名思义就是使用电缆或者物理介质组成的,而有线网络是使用有线把电信号从一端传输到另外一端的网络。一般在有线网络中,使用 T1线,电缆解调器或任何其余方式使用 Internet 链接。
无线
指的是由电磁波(即 EM 波)或红外波组成的介质。全部的无线设备都带有天线或者传感器。典型的无线设备包括蜂窝移动设备,无线传感器,电视遥控器,带有 WLAN 的笔记本电脑。无线网络不使用电线
进行数据通讯。
它们之间的差异以下
技术指标 | 有线网络 | 无线网络 |
---|---|---|
运做速度 | 更高 | 相比有线网络要低,可是先进的无线技术(例如LTE,LTE-A和WLAN-11ad)将有可能实现与有线网络至关的速度 |
系统带宽 | 高 | 低,由于频谱是很是稀缺的资源 |
成本 | 更少,由于电缆不贵 | 无线订户站,无线路由器,无线接入点和适配器价格昂贵 |
安装 | 有线网络安装麻烦,须要更多时间 | 无线网络安装简便,所需时间更少 |
流动性 | 受限制,由于它在有线网络链接的系统所覆盖的区域中运行 | 没有限制,由于它在整个无线网络覆盖范围内运行 |
传输介质 | 铜线,光缆,以太网 | 电磁波或无线电波或红外线 |
网络覆盖范围扩展 | 须要集线器和交换机来扩展网络覆盖范围 | 相互链接的无线基站覆盖了更多区域。 |
应用领域 | 局域网(以太网),城域网 | WLAN,WPAN(Zigbee,蓝牙),红外,蜂窝(GSM,CDMA,LTE) |
信道干扰和信号功率损耗 | 干扰较小,由于一个有线网络不会影响另外一有线网络 | 因为无线发射器和接收器之间的障碍(例如天气条件,墙壁反射等),干扰会更高。 |
QoS(服务质量) | 更好 | 因为抖动值高和链接设置延迟而致使的性能较差 |
可靠性 | 与无线同类产品相比,具备较高的优点,由于多年以来因为有线技术的存在,制成的电缆具备更高的性能。 | 合理高,这是因为路由器故障会影响整个网络。 |
WiFi
若是你配置过网络,那你必定见过 WLAN(Wireless LAN)
无线计算机网络,它使用无线通讯链接两个或多个设备,用来造成一个 LAN。
如今,愈来愈多的人经过智能手机、平板电脑和其余物品无线接入因特网。基于 IEEE 802.11 技术的无线 LAN 接入,更通俗的称为 WiFi
,如今WiFi 几乎无处不在,如大学、商业办公室、咖啡厅、机场、家庭甚至是在飞机上。
iPhone 和 安卓等设备愈来愈多的用于在移动中发信息、在社交网络中分享照片、观看视频和播放音乐等。这些设备应用了与蜂窝移动电话相同的无线基础设施,经过蜂窝网提供商运营的基站来发送和接收分组。与 WiFi 不用的是,蜂窝网提供的范围要比 WiFi 大太多了。
下面是使用 3G 无线技术进行接入的示意图
电信公司在第三代无线技术中进行了大量的投资,3G 为分组交换广域无线因特网接入提供了超过 1Mbps 的速率。甚至更高速率的广域接入即第四代 4G 广域无线网络也已经被部署了(咳咳,咱们国家已经立刻5G 了谢谢)。LTE(Long-Term Evolution)
来源于 3G 技术,它可以取得超过 10Mbps 的速率。
在前面的内容中,咱们描述了互联网接入技术,那么要进行这些互联网必然是少不了传输媒介的,那么你考虑一下这个发送过程,一个比特数据包从一个端系统开始传输,通过一系列的链路和路由器,从而到达另一个端系统。这个比特会被转发了不少次,那么这个比特通过传输的过程所跨越的媒介就被称为物理媒介(phhysical medium)
,物理媒介有不少种,好比双绞铜线、同轴电缆、多模光纤榄、陆地无线电频谱和卫星无线电频谱。其实大体分为两种:引导性媒介和非引导性媒介。
最便宜且最经常使用的引导性传输媒介就是双绞铜线
,多年以来,它一直应用于电话网。从电话机到本地电话交换机的连线超过 99% 都是使用的双绞铜线,例以下面就是双绞铜线的实物图
双绞铜线由两根绝缘的铜线组成,每根大约 1cm 粗,以规则的螺旋形状排列,一般许多双绞线捆扎在一块儿造成电缆,并在双绞馅的外面套上保护层。一对电缆构成了一个通讯链路。无屏蔽双绞线
通常经常使用在局域网(LAN)中。
与双绞线相似,同轴电缆也是由两个铜导体组成,下面是实物图
借助于这种结构以及特殊的绝缘体和保护层,同轴电缆可以达到较高的传输速率,同轴电缆广泛应用在在电缆电视系统中。同轴电缆常被用户引导型共享媒介。
光纤是一种细而柔软的、可以引导光脉冲的媒介,每一个脉冲表示一个比特。一根光纤可以支持极高的比特率,高达数十甚至数百 Gbps。它们不受电磁干扰。光纤是一种引导型物理媒介,下面是光纤的实物图
通常长途电话网络全面使用光纤,光纤也普遍应用于因特网的主干。
无线电信道承载电磁频谱中的信号。它不须要安装物理线路,并具备穿透墙壁、提供与移动用户的链接以及长距离承载信号的能力。
一颗卫星电信道链接地球上的两个或多个微博发射器/接收器,它们称为地面站。通讯中常用两类卫星:同步卫星和近地卫星。
欢迎关注个人我的公众号
做者:cxuan 本文版权归做者全部,未经做者容许不能转载,转载须要联系,不然追究法律责任的权利。 若是文中有什么错误,欢迎指出。以避免更多的人被误导。 |