计算机网络概述

计算机通信需求从单一程序到程序之间,到不同计算机中间,从而产生了计算机网络来供应与这样的需求。因此我们需要设计一套完整的体系来满足相互通信的需求。此时我们就需要到通信设备的连接,并使用规定的方式即规定的通信协议,以及实现通信的对应软件等等。

分层架构

首先在计算机中有一个非常重要的思想就是分层,在计算机通信层面也不例外。我们利用分层的方法,每一层向上一层提供服务,以保证每层的功能相互独立,各自处理自己对应的问题,这样就将复杂问题简单化。这样我们就会发现我们把问题拆解开了,所以说网络体系结构就是计算机网络各层和层间协议的集合。而这样将同层之间的对立对接关系,转化到调用下层接口,而无需关心之外的关系。

就好像你给别人邮快递,你只需要将物品提交给邮递员告诉他邮到哪里,而不用关心他如何实现这一操作,而你也会知道邮递员会确认无误的完成这一操作即可。那么对应邮递员会将包裹交给快递点,快递点又会提交到转运中心,而转运中心会对应发给对应的地方,同样再分发给快递点,再由快递员派送到对方手中。那么实际上这中间就被抽象出了对应需求,由每一层负责对应的任务,同时保证自己负责部分的正确性,而不关心其他的东西,就像转运中心不会看到你交给快递员是什么东西,快递员也不知道用哪辆车发出的。这样我们也看到了这个层级化的一个好处,就是部分保证了信息的安全性。

所以说我们将计算机间的通信也划分了几个层次,首先是80年代确认了OSI参考模型,从上至下分成了应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,各个计算机系统都有相同的层次结构,不同系统的相应层次有相同的功能,对应层次间有着对应通信协议。到了90年代互联网的发展,变成了TCP/IP模型,可以说是简化模型设计变成了应用层、传输层、网际层、网络接口。

我们自顶向下来分析一个网络通信所经历的路程。首先对于整体来说我们要将数据打包,做上自己独有的标记,来保证可以识别解析到,这也就是数据封装,这样数据到来我们读取到然后解封,交给上层,自己不做继续处理。那么我们日常使用的就是应用层的通信,首先需要规定协议,其中就包括了http,ftp,mstp等等。在进程之间的通信,进程之间通过套接字(socket)来接收/发送消息。那么如何确定找到他们呢,我们利用ip地址和端口进行通信,那么其中端口是传输层来提供的服务,我们将每一个进程分配一个端口,从而使得传输进来的消息能准确传递到应用中。那么接下来就是传输层,为不同主机之间的应用进程提供通信的桥梁,发送方把应用层接到的消息分成段,再把这些段传输给网络层,接收方把接收到的段重新拼装成消息,传输给应用层。这里同样需要确定的协议,主要提供了tcp和udp两种,TCP是可靠的,有序的传送,UDP由于对发送的段不进行校验和确认,因此它是“不可靠”的。无论何种方式我们都将数据分好包,准备传输,这样就到了网际层,他就负责在发送和接收的主机之间传送packet,有路由决定包从源到目的路径,或是进行包的转发,我们在网络层保证数据包的交付,和进行传输算法的选择,保证传输时间与效率。那么对应数据包就是利用最后的网络接口层进行传输,这里才是真正的物理介质进行数据的传输。我们同样需要协议的保证,如802.11协议,那么我们利用物理介质进行数据流的传输。

通信

接下来,就是网络通信基础。信息通信有两种方式,模拟信号和数字信号,模拟信号就是我们正常以波的形式生成的信号,通过模拟信道传输,数字信号就是01信息如用高低电平表示,通过数字信道传输。那么信息传输就经过了从信源发出经过变换器(如将数字信号转为模拟信号或相反转换)通过信道的传输到对应利用反变换器传给信宿。那么其中数据与信号间的转换就是数据编码技术。我们通过调制将数字数据转换到对应的模拟信号编码,同时反过来我们可以利用采样、量化、编码来讲模拟数据转换为数字信号。

那么这里就涉及到了一些名词,首先就是带宽,带宽是信道传输能力的度量,模拟信道中用Hz表示,即最高频率与最低频率之差,那么我们带宽越大可表示的波形就越多因此传输能力就越强。对于数字信道的带宽,我们用每秒能传送的最大比特数来衡量,通常以Kbps、Mbps为单位。这里就提到了传输速率即每秒传送构成数据代码的二进制比特位数,我们比较显然的可以看成他与信道带宽成正比。由于我们对于模拟信号接受不可能是连续的,因此我们是采用采样来还原原信号,所以这里我们有Nyquist-Shannon采样定理,采样周期要小于整数周期的1/2,采样频率应该大于原始频率的2倍,这样我们才能完整正确得到对应的模拟信号,否则就会出现混叠的现象。因此我们也可以看到我们在无噪声干扰的情况下,如果带宽为B,那么可被传输的最大信号速率就是2B;反过来说如果信号传输速率为2B,那么频宽为B的带宽就完全能够达到此信号的传输速率。由于实际信道的频带都是有限的,所以不管其有没有噪声,接收端所得的信号频谱必定与发送端不同,这就会使接收端的波形失真。因此超过范围就会造成码间干扰,所以说传输速率受到带宽限制。显然噪声一定会影响传输速率,我们有香农定理:信道容量Rmax与信道带宽W,信噪比S/N关系为: Rmax=W*log2(1+S/N)。

那么对于数据的传输,可以分为单工通信(即只能接收或者发送),半双工通信(同一时间只能发送或者接收),全双工通信(可以同时发送和接收)。那么对于数据传输的方式也有两种,一种是将数据变成一串进行串行传输,或者利用多线并行同时传输不同位信息的并行传输,而由于并行数据整合相较更为复杂,目前基本都采用了串行传输来并进行优化从而效率更高。

由于绝大部分通信数据传输在时间上具有短时间高速活跃而长时间保持静默状态,这样我们如果对单一用户分配巅峰时期的带宽就会造成大量浪费,而我们根据大数据上的类随机分布,就产生了多路复用技术,即让大家公用一个高速通信线路,通过适当的调配技术分配各用户的使用。那么我们就会产生了4种基础的技术:频分多路复用,顾名思义将频段分开调配;波分多路复用,实际是特殊的频分多路复用;时分多路复用,即我们将使用时间切分成几乎不可感知的小片段,我们对使用的用户依次分配一个片段使用权限,这样我们宏观上看起来传输是连续的,从而提高了利用率;码分多路复用,我们通过每个用户分配一个地址码,各个码型互不重叠,通信各方之间不会相互干扰,主要应用于无线通信系统。

对于传输介质分为无线和有线。有线介质包括屏蔽双绞线、非屏蔽双绞线、同轴电缆、光缆等,其中光缆是将电信号转换成为光信号进行传输。无线主要通过波的形式进行传输,如无线电,红外线,微波,卫星等等。

我们可以知道对于数据传输,很难实现一对一的直连,我们常通过通信子网中的若干个中间节点(如路由器)将数据一步一步地发送到目的站点。那么就需要数据交换技术来提供帮助,我们分为线路交换、报文交换、分组交换。线路交换,就是我们首先进行线路的建立,从起点到终点,建立一条可行线路,之后进行通信,然后将线路释放,这样的缺点显而易见,就是对于资源比较浪费,但通信实时性强,可靠,因此常用于电话通信。报文交换,即将数据打包成报文进行传输,这样中间节点可以进行校验,但由于大小可变,同时需要存储转发,可能会排队,导致延时波动大,对存储要求高。接下来就是分组交换,我们将报文按照长度分组,独立的进行传输,到目标机器后重组,再进行校验,这样即使传输有错,只需重发一个或若干分组,不必重发整个报文。

局域网

狭义局域网就是一个广播体系所波及范围内的网络,这是最小定义的局域网,那广义上的通信线路属于网络所有者的范围内的网络,这是最大定义的局域网。
局域网覆盖的地理范围比较小,分布距离短,一般距离≤25km ,一般为一个单位所拥有。布局多采用总线、环型、星型、树型拓扑结构。实际应用中局域网以树型居多。其中就利用网络交换机路由器等提供了连接结构。局域网按网络的转接方式划分为共享介质局域网和交换式局域网,交换式局域网是全双工的无需介质访问控制。共享介质局域网中的介质访问控制方法常见的有两种:轮流访问控制,即令牌传递,拥有令牌才有接入权限;以及随机访问控制,载波侦听多路访问/冲突检测,这是以太网的核心技术,以解决多接点如何共享总线的问题。他的工作原理发前先侦听,空闲即发送,边发边检测,冲突时退避。交换式以太网是以网络交换机为主干的以太网,局域网上的多个节点不需要共享介质,可由交换机提供多个并行连接。

虚拟局域网是建立在交换式局域网基础上的,通过管理软件构建的、可以跨越不同网段、不同网络的逻辑组,一个VLAN组成一个逻辑上的广播域。一个VLAN就好像是一个孤立的网段,VLAN间不能直接通信(尽管可能分属不同VLAN的站点连接在同一个交换机上),实现VLAN间互联必须借助于路由器,这样他使得可以更好的划分设备,而不受限于物理空间。

网络互联

首先在物理层我们通过互联实现在不同的通信媒体中传送比特流,这里主要设备就是中继器和集线器,那我们在数据链路层,实现了LAN与LAN间的互联,其中设备就是网桥和交换机,那么我们在网络层就是与广域网有关的互联了,因此就是涉及到了路由器,再高层用于两个高层协议不同的网络互连之间就是网关,使用最多的就是应用网关。

那么这里提到了各种设备,时候电脑中装有网卡,独有一个MAC地址,固化在网卡硬件中,网卡控制调配数据发送接收,是电脑与外界互联的必要条件。那么中继器就是提供了连接两个相同类型的网段,具有放大再生物理信号作用,可以说最简单的网络连接设备;对于集线器实际上可以看成多个端口的中继器,中间数据能被所有人都看到和发送。此时就需要数据链路层的交换机和网桥。网桥又称为桥接器,和中继器类似,传统的网桥只有两个端口,用于连接不同的网段。和中继器不同的是,网桥具有一定的”智能”性,可以”学习”网络上主机的地址,同时具有信号过滤的功能。交换机相当于多端口的网桥,构成一个广播域,可以分离冲突域而不能分离广播域,交换机除了过滤/转发功能外,还可以划分虚拟子网,能学习地址并进行操作。交换机维护一个MAC地址表(即CAM表),用来跟踪连到交换机的设备的位置,同时也用这个表决定哪些数据包需要转发到其他网段。路由器工作在网络层,可以识别网络层的地址-IP地址,有能力过滤第3层的广播消息。实际上,除非做特殊配置,否则路由器从不转发广播类型的数据包。因此,路由器的每个端口所连接的网络都独自构成一个广播域。可以发现路由器基于第三层,用IP地址,控制能力强,而交换机基于第二层,用MAC地址,交换速度快。而此时可能局域网主机数过多,会存在第三层的交换机,既可以像路由器一样隔离广播域,又具有交换机的速度,相对于路由器传输速度快又降低了成本,但三层交换机不能作为路由器实现LAN与WAN的连接,仅用于局域网中子网与子网的连接。对于网关,他工作在高层,因此并不使用冲突域、广播域的概念。网关主要用来进行高层协议之间的转换。

Internet

Internet组成要素:局域网/服务器,传输系统,TCP/IP协议。工作模式:C/S模式:把应用程序分成两部分,一部分运行在客户机,另一部分运行在服务器;B/S模式:特殊的C/S模式,是一种分布式的C/S结构,使用http协议,中间多了一层web服务器,在服务器上运行Web服务程序(Web服务器),而在用户计算机上运行浏览器程序,用户通过浏览器获取服务器上的服务;P2P工作模式:网络节点之间采用对等的方式,通过直接交换信息达到共享计算机资源和服务的工作模式。

Internet编址机制:域名地址,IP地址,MAC地址。这里同样采用了分层的思想,对于我们人们访问来说更贴近的是域名地址,我们只需要记住对应的域名就能访问到对应的服务,因为域名是可以几乎无需变更的,此时只需要将对应服务器的ip与域名对应我们就可以访问到。

而对于计算机而言我们之前了解到他是通过tcp/ip框架通信,因此我们需要一种方式使得他通过我们输入的域名获取对应ip。这里就需要DNS服务器的支持,dns服务器由域名地址逆序构成树形结构,譬如www.pku.edu.cn,我们由全球部署数台根服务器支持,下面会解析.cn后缀DNS服务器的地址,那么此时我们就可以访问.cn的对应服务器,从而获取edu.cn,依次我们获得pku.edu.cn的dns服务器地址,从中我们获取域名对应的ip地址,从而实现查找到我们所需要的ip,当然实际实现会比这样的复杂,会有一些辅助、缓存、转发服务器等。我们电脑存的DNS服务器地址也就是这个缓存的DNS,这也就是所谓的DNS污染的原因。同时我们也可以知道一个域名可以对应多个ip,一个ip可以有多个域名,他可以根据DNS服务器来反馈对应不同的ip。

那么这时我们得到了ip,电脑就可以开始通信了,但是如果连接到呢,这就要了解ip地址的布局。我们以ipv4为例,我们将32位地址按固定ip策略分为5类ABCDE,分别由前面不同固定位区分,中间依次增加的网络号加上对应的主机号来构成32位地址,也就是说类别依次往后所容纳的主机个数越小,但拥有的该类对应网络数更多。这样做有什么用呢,我们就可以同样将ip地址分层划分,从而借助路由器确定到对应位置。但按照大类分过于粗糙,这样同样就有了子网的概念,一个网络划分成几个子网后,每个子网是独立的,若要访问其他子网的主机,必须经路由器转发。那么如何确定子网,就利用到了子网掩码,我们实际上就是将ip前几位固定,后面的位任意,这样一个ip段划归为一个子网,因此我们就可以得到我们的子网掩码,即我们固定k位,子网掩码的前k位就是1后面就是0,这样我们子网内的ip和子网掩码做与运算,就可以得到对应的子网。我们同时记录网关ip来表示子网的路由器的地址。

基于子网的思想,对于主干网上路由表可能过大,因此我们引入了路由聚合,将多个小前缀的地址块合并成一个大前缀的地址块,路由聚合使得路由表中的一个项目(一个CIDR地址块)可以表示很多个原来传统分类地址的路由,即在路由表中就利用CIDR地址块来查找目的网络,从而减少路由器之间的路由选择信息的交换,提高了整个Internet的性能,路由聚合和“子网划分” 的思想应协同工作,统称为无类别域间路由(CIDR)。此时我们用网络前缀的概念,用“IP地址/网络前缀所占比特位数”
来表示。那么此时对于路由的寻址,我们只需要匹配最长前缀的记录即可。

此时我们就了解了寻址的过程,那么之后我们就利用Mac地址找到对应ip地址的主机即可。

网络安全

计算机网络通信面临的威胁分两大类:被动攻击,譬如截获(防范:数据加密技术);主动攻击,譬如中断,篡改,伪造(防范:数据加密技术+鉴别技术等),因此我们简要说明一下加密技术。

有两种加密体制:对称密码体制,即使用同一套密钥加密和解密,通俗一点说,就是我通过hashA加密,然后我告诉对方我用的hashA,并且这个可逆,然后对方通过逆变换解密;另一种就是非对称密码体制,即每个用户都具有一对密钥,公钥公开,私钥保密,即我们通过公钥hashA加密后这个操作无法找到逆变换,就算我知道hashA也没有用,但是他可以通过私钥hashB再次运算从而得到原文,即我们可以看成两个变换函数hashA(X)得到密文,hashB(hashA(X))=X,同时还可以调换过来hashA(hashB(X))=X

这样做的好处显而易见,我们使得不需要传递密钥,从而获得了安全性的保证。我们只需要利用对方的公钥加密,对方用自己的私钥解密即可。而这时还存在一个问题就是被人冒充传输数据,这就引入了数字签名,我们知道私钥是不可见的,同时根据上面的变换,我们知道两个函数可以调换,那么我们就可以首先利用自己的私钥进行加密签名,再按照步骤加密传输,对方解开后,可以利用我们的公钥来解密从而得到明文。而这样就防止了其他人的冒充,因为其他人无法获取被冒充者的密钥。

为了安全地分发公钥,需要数字认证证书,他是一个被称为认证中心CA的权威机构在确认了公钥持有者的身份后颁发的,包含公钥持有者信息、持有者公钥以及CA数字签名等的文件,CA颁发数字证书的同时,会用CA它自己的私钥对证书的消息摘要(SHA-1散列值)进行签名,生成签名,数字证书一般与业务信息内容一起发送。接收方通过对数字证书的验证,可以确认发送方的真实身份。

对于非对称算法运算速度较对称算法会非常慢,因此他常常用于小数据的传输,比如传输对称算法的密钥。

防火墙是位于两个(或多个)网络之间,实施网络间访问控制的一组组件集合。
防火墙的功能:
检查所有外部网络进入内部网络的数据包,防止非法用户进入内部网络;
检查所有从内部网络流出到外部网络的数据包;
能利用NAT(网络地址变换)技术,将内部地址转换为外部地址,提高内网安全性;
能实施安全策略、计划的确认和授权;
可方便地监视网络的安全性,并能产生日志和发生报警;
是审计和记录Internet使用费的一个最佳地点。

网络维护

磁盘阵列RAID:

主体思想:利用多个磁盘组成阵列替代造价昂贵的大磁盘,
同时达到高性能、高可靠性的存储技术。
基本思路就是把数据分成数据块并行操作多个磁盘,提高传输效率;
并通过镜像或者数据校验操作提高容错能力和扩展性。

RAID 0:条带化,并行处理,但没有差错控制

RAID 1:完整克隆保存数据,安全性最好但是写入慢、磁盘利用率低

RAID 2:基于上面优化变为储存海明码,按“位”单位分块,从而按位校正,并且存取时更快

RAID 3:类似上面,基于发生故障概率小只存奇偶验证,这样只需一个额外盘,但校验盘压力大,因此用于读取多的情况

RAID 4:把上面单位变成“块”,提高小数据读写速度

RAID 5:依上,将校验块分散到各个磁盘,解决了校验盘瓶颈问题

RAID 6:依上,增加一个校验码,提高数据恢复能力,但写性能下降

RAID 7:价格高,自带智能化系统和管理工具,独立于主机运行

RAID嵌套:10结合和01结合,性能类似,安全性10更好

评论

还没有任何评论,你来说两句吧

发表评论

衫小寨 出品