计算机网络,根据其规模分为WAN(Wide Area Network,广域网)和LAN(LocaL Area Network,局域网)。
20世纪50年代。
指多个终端(键盘、显示器、打字机等)与同一个计算机连接,允许多个用户同时使用一台计算机的系统,诞生于20世纪60年代。
分时操作系统将CPU的时间划分成若干个片段,称为时间片。操作系统以时间片为单位,轮流为每个终端用户服务。
20世纪70–80年代,基于分组交换技术的计算机网络加上窗口系统的诞生。
20世纪90年代。
2000年后,通过IP协议实现荣欣、播放的统一。
协议就是计算机与计算机之间通过网络实现通信时实现达成的一种“约定”。
CPU与OS
CPU(Central Processing Unit)中央处理器。每个程序实际上是由它调度执行的。OS(Operating System)操作系统,是一种基础软件。它集合了CPU管理、内存管理、计算机外围设备管理以及程序运行管理等重要功能。很多TCP/IP协议的处理,已经内签到具体操作系统中了。
一台计算机可运行的指令,因其CPU、操作系统的不同而有所差异。
一个CPU通常在同一时间只能处理一个程序。为了让多个程序同时运行,操作系统采用CPU时间片轮转机制,在多个程序之间进行切换,合理调度。这种方式就叫做多任务调度(分时系统就是采用这种方式)。
分组交换是指将大数据分割为一个个叫做包(Packet)的较小单位进行传输的方法。
计算机通信会在每个分组中附加上源主机地址和目标主机地址送给通信线路。这些发送端地址、接收端地址以及分组序号写入的部分称为“报文首部”。
一个较大数据被分为多个分组时,为了标明是原始数据中的哪一部分,就有必要将分组的需要写入包中。接受端根据这个序号,再将每个分组按照序号重新装配为原始数据。
ISO(International Organization for Standards 国际标准化组织)制定了一个国际标准OSI(Open Systems Interconnection 开放式通信系统互联参考模型),对通信系统进行了标准化。
但是TCP/IP并非ISO所制定的国际标准,而是由IETF建议、致力于推进器标准化的一种协议。
标准化
标准化是指不同厂商所生产的异构产品之间具有兼容性、便于使用的规范化过程。
分层的优点是分层独立使用,可以构造一个扩展性和灵活性较强的系统,且更易于单独实现每个分层的协议,并界定每个分层的具体责任和义务。
分层的劣势,就在于过分模块化、使处理变得更加沉重以及每个模块都不得不实现相似的处理逻辑等问题。
OSI协议与OSI参考模型
OSI(参考模型)将通信功能划分为7个分层,称为OSI参考模型。
OSI协议是为了让异构的计算机之间能够相互通信的、由ISO和ITUT推进其标准化的一种网络体系结构。
OSI协议以OSI参考模型为基础界定了每个阶层的协议和每个阶层之间接口相关的标准。
以发送电子邮件为例解释:
应用层
从用户输入完要发送的内容并点击“发送”按键那一刻开始,就进入了应用层协议的处理。该协议会在锁要传送数据的前端附加一个首部(标签)信息。该首部标明了邮件内容为“早上好”和收件人为“B”。这一附有首部信息的数据传送给主机B以后由该主机上的收发邮件软件通过“收信”功能获取内容。
主机A与主机B通过它们各自应用层之间的通信,最终实现邮件的存储。
表示层
表示层更关注数据的具体表现形式。所使用的应用软件本身不同也会导致数据的表现形式不同。
会话层
决定采用何种连接方法是会话层的主要责任。例如何时建立连接、何时发送数据等。
传输层以上描述的是在应用层写入的数据会经由表示层格式化编码、再由会话层标记发送顺序后才被发送出去。
传输层
主机A确保与主机B之间的通信并准备发送数据,这一过程叫做“建立连接”。在两个主机之间创建逻辑上的通信连接即使传输层的主要作用。
保证数据传输的可靠性是传输层的一个重要作用。然而,实际上将数据传输给对端的处理时由网络层来完成的。
网络层
网络层作用是在网络与网络相互连接的环境中,将数据从发送端主机发送到接收端主机。
在实际发送数据时,目的地址很重要。这个地址是进行通信的网络中唯一指定的序号。
数据链路层、物理层
通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。
网络层与数据链路都是基于目标地址将数据发送给接收端的,但是网络层负责将真个数据发送给最终目标地址,而数据链路层则只负责发送一个分段内的数据。
物理层中,将数据的0、1转换为电压和脉冲光传输给物理的传输介质,而相互直连的设备之间使用地址实现传输。这种地址被称为MAC地址,也被称为物理地址或硬件地址。采用MAC地址,目的是为了识别连接到同一传输介质上的设备。因此,这一分层将包含MAC地址信息的首部附加到从网络层转发过来的数据上,将其发送到网络。
通过网络发送数据,大致可以分为面向有连接与面向无连接两种类型。
面向有连接型中,在发送数据之前,需要在收发之间连接一条通信线路。
面向无连接型则不要求建立和断开连接。
目前,网络通信方式大致分为两种–电路交换和分组交换。
电路交换历史久远,主要用于过去的电话网。电路交换中,交换机主要负责数据的中转处理。电话网是独占线路进行数据传输。
分组交换技术则是一种新的通信方式。让连接到通信电路的计算机将所要发送的数据分成多个数据包,按照一定的顺序排列之后分别发送。
在分组交换中,由分组交换机(路由器)连接通信线路。分组交换大致处理过程是:发送端计算机将数据分组表发送给路由器,路由器收到这些分组数据以后,缓存到自己的缓冲区,然后再转发给目标计算机。因此,分组交换也有另一个名称:蓄积交换。
分组交换中,计算机与路由器以及路由器与路由器之间只有一条通信线路。因此,这条线路是一条共享线路。在电路交换中,计算机之间传输速度不变。然后再分组交换中,通信线路的速度可能会有所不同。根据网络拥堵情况,数据达到目标地址的时间有长有短。另外,路由器缓存饱和或溢出时,甚至可能会发生分组数据丢失、无法发送到对端的情况。
网络通信当中,也可以根据目标地址的个数及其后续的行为对通信进行分类。如广播、多播等就是这种分类的产物。
1对1通信,早先固定电话就是单播通信的典型例子。
指将消息从1台主机发送给与之相连的所有其他主机。广播通信
的一个典型例子就是电视播放,它将电视信号一齐发送给非特定的多个接收对象。
电视信号一般都有自己的频段。只有在相应频段的可接收范围内才能收到电视信号。与此类似,进行广播通信的计算机也有它们的广播范围。只有在这个范围之内的计算机才能收到相应的广播消息。这个范围叫做广播域。
多播与广播类似,也是将消息发送给多个接收主机。不同之处在于多播要限定某一组主机作为接收端。多播通信最典型的的就是电视会议,这是由多组人在不同的地方参加的一种远程会议。
任播是指在特定的多台主机中选出一台作为接收端的一种通信方式。
任播通信从目标主机群中选择一台最符合网络条件的主机作为目标主机发送消息。通常,没选中的那台特定的主机将返回一个单播信号,随后发送端主机只跟这台主机进行通信。
任播在实际网络中的应用有DNS根域名解析服务器。
每一层的协议所使用的地址都不尽相同。例如,TCP/IP通信中使用MAC地址、IP地址、端口号等信息作为地址标识。甚至在应用层中,可以将电子邮件地址作为网络通信的地址。
当地址越来越多时,如何高效从中找出通信的目标地址将成为一个中重要的问题。为此地址除了具有唯一性还需要具有层次性。其实在电话和信件通信过程中,早已存在地质分层的概念。例如,电话号码包含国家区号和国内区号,通信地址包含国名、省名、市名和区名等。正式有了这种层次分类才能更加快速地定位某一个地址。
MAC地址和IP地址在标识一个通信主体时虽然都具有唯一性,但是它们当中只有IP地址具有层次性。
MAC地址由设备制造厂商对每块进行分别指定。人们可以通过制造商识别号、制造商内部产品编号记忆产品通用编号确保MAC地址的唯一性。但是人们无法确定哪家厂商的哪个网卡被用到哪个地方。
Ip地址如何实现分层?一方面,IP地址由网络号和主机号两部分组成。即使通信主机的IP地址不同,若主机号不同,网络号相同,说明它们处于同一网段。通常,同处一个网段的主机也都属于同一个部门或集团组织。另外,网络号相同的主机在组织结构、提供商类型和地域分布上都比较集中,也为IP寻址带来了极大的方便。
网络传输中,每个节点会根据分组数据的地址信息,来判断该报文应该由哪个网卡发送出去。为此,每个地址会参考一个发出接口列表。在这一点上MAC寻址与IP寻址是一样的。只不过MAC寻址中所参考的这张表叫做地址转发表,而IP寻址中所参考的叫做路由控制表。MAC地址转发表中所记录的是实际的MAC地址本身,而路由表中记录的IP地址是集中了之后的网络号(更确切的说是网络号与子网掩码)。
搭建一套网络环境要涉及各种各样的电缆和网络设备。在此仅介绍连接计算与计算机的硬件设备。
交换机与路由器
交换机一般工作在OSI的第二层(数据链路层) ,当然现在有更多的2层交换机、3层交换机、4-7层交换机等。
路由器工作在OSI的第三层(网络层)
计算机之间通过电缆相互连接。电缆可以分为很多种,包括双绞线电缆、光纤电缆、同轴电缆、串行电缆等。根据数据链路的不同选用的电缆类型也不尽相同。而媒介本身也可以被划分为电波、微波等不同类型的电磁波。
数据链路(Datalink)
指相互直连的设备之间进行通信所涉及的协议及其网络。为此,有众多传输介质与之对应。
下图总结了各种不同数据链路、通信媒介及其标准传输速率:
传输速率与吞吐量
在数据传输过程中,两个设备之间数据流动的物理速度称为传输速率。单位为bps(Bits Per Second,每秒比特数)。从严格意义讲,各种传输媒介中信号的流动速度是恒定的。因此,即使数据链路的传输速率不相同,也不会出现传输的速度忽快忽慢的情况(因为光和电流的传输速度是恒定的)。传输速率高也不是指单位数据流动速度快,而是指党委时间内传输数据量有多少。
以我们生活中道路交通为例,低速数据链路就如同车道较少无法让很多车同时通过的情况。与之相反,告诉数据链路就相当于有多个车道,一次允许更多车辆行驶的道路。传输速率又称作带宽(Bandwidth)。带宽越大网络传输能力就越强。
主机之间实际的传输速率被称作吞吐量。其单位与带宽相同,都是bps(Bits Per Second)。吞吐量这个测不仅衡量带宽,同时也衡量主机的CPU处理能力、网络的拥堵程度、报文中数据字段的占有份额(不含报文首部,只计算数据字段本身)等信息。
任何一台计算机连接网络时,必须要是用网卡(全称为网络接口卡)。网络接口卡(NIC Network Interface Card)有时也被叫做网络适配器、网卡、LAN卡。
网卡的作用就是把数据进行串并转换(串连数据是比特流形式的,存在与本计算机内部,而计算机与计算机之间是通过帧形式的数据来进行数据传输的),MAC子层规定了如何在物理线路上传输的frame,LLC的作用是识别不同协议类型然后进行encapsulation(封包), 所以精确的说,网卡工作在Data Link Layer的MAC子层。
网卡是属于数据链路层。
网卡集成了连接局域网功能的设备。有时会被集成到计算机的主板中,有时也可以单独插入扩展槽使用。Network Information Center的缩写也是NIC,要注意区分。
很多产品目录中都加入了“内置LAN端口”的参数,说明越来越多计算机在出厂设置中就具备了以太网(Ethernet)1000BASE-T或100BASE-TX的端口。没有配置NIC的计算机如果想接入以太网,至少得外接一个扩展槽以便插入NIC。无线局域网也是如此,计算机必须具备能够接入无线网的NIC才能保证连接到网络。笔记本电脑如果没有内置NIC,可以通过ExpressCard或CardBus、压缩闪存以及USB方式插一块NIC以后再连网。
ExpressCard
笔记本电脑中的卡型扩展设备。由定制PC卡标准的PCMCIA(Personal Computer Meomory Card International Association)统一规格。
中继器是在OSI模型的第一层–物理层上延长网络的设备。
中继器是**局域网(LAN)**环境下用来延长网络距离的最简单最廉价的网络互联设备,由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆。
一般,中继器两端连接的是相同的通信媒介,但有的中继器也可以完成不同媒介之间的转接工作。如,可以在同轴电缆与光缆之间调整信号。然而,这种情况下,中继器也只是单纯负责信号在0和1比特流之间的替换,并不负责判断数据是否有错误。同时,它只负责将电信号转换为光信号,因此不能在传输速度不同的媒介之间转发。
用中继器无法连接一个100Mbps的以太网和另一个10Mbps的以太网。连接两个不同速度的网络需要的网桥或路由器这样的设备。
通过中继器而进行的网络延长,距离也并非可以无限扩大。例如一个10Mbps的以太网最多可以用4个中继器分段连接,而一个100Mbps的以太网则最多只能连两个中继器。
有些中继器可以提供多个端口服务。这种中继器被称为中继集线器或集线器。因此,集线器可以看做是多口中继器,每个端口都可以成为中继器。
集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。它被广泛应用到各种场合。集线器工作在局域网(LAN)环境,
集线器实际上就是中继器的一种,其区别仅在于集线器能够提供更多的端口服务,所以集线器又叫多口中继器。
网桥也称为桥接器,是连接两个局域网的存储转发设备,用它可以使完全具有相同或相似体系结构网络系统的连接,这样不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。
网桥工作在OSI参考模型的数据链路层(第二层),将两个局域网LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。
它能够识别数据链路层中的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段。由于能够存储这些数据帧,网桥能够连接10BASE-T与100BASE-TX等传输速率完全不同的数据链路,并且不限制连接网段的个数。
数据链路的数据帧中有一个数据位叫做FCS,用以教研数据是否正确宋代目的地。网桥通过检车这个域中的值,将那些损坏的数据丢弃,从而避免发送给其他的网段。此外,网桥还能通过地址自学机制和过滤功能控制网络流量。
这里所说的地址是指MAC地址、硬件地址、物理地址以及适配器地址,也就是网络上针对NIC分配的具体地址。如下图所示,主机A与主机B之间进行通信时,只针对主机A发送数据帧即可。网桥会根据地址自学机制来判断是否需要转发数据帧。
如上这类功能是OSI参考模型的第2层所具有的功能,为此有时也把网桥称为2层交换机(L2交换机)。
有些网桥能够判断是否将数据报文转发给相邻的网段,这种网桥被称为自学式网桥。这类网桥会记住曾经通过自己转发的所有数据帧的MAC地址,并保存到自己的内存表中。由此,可以判断哪个网段中包含持有哪些MAC地址的设备。
以太网等网络中经常使用的交换集线器(Hub),现在基本也属于网桥的一种。交换集线器中连接电缆的每个端口都能提供类似网桥的功能。
具有网桥功能的Hub叫做交换集线器。只有中继功能的Hub叫做集线器。
交换机就是一个多端口的网桥。
路由器工作在OSI模型第3层–网络层。负责连接两个网络、并对分组报文进行转发的设备。
网桥是根据物理地址(MAC地址)进行处理,而路由器/3层交换机是根据IP地址进行处理的。TCP/IP中网络层的地址就成为了IP地址。
路由器可以连接不同的数据链路。例如连接两个以太网,或者连接一个以太网一个FDDI。宽带路由器也是路由器的一种。
路由还有分担网络负荷的作用,甚至有些路由器具备一定网络安全功能。
47层交换机负责处理OSI模型中从传输层至应用层的数据。如果用TCP/IP分层模型来表述,47层交换机就是以TCP等协议的传输层及其上面的应用层为基础,分析收发数据,并对其进行特定的处理。
负载均衡器,就是4~7层交换机的一种。 宽带控制,也是4~7层交换机的重要功能之一。
4~7层交换机的应用场景还有很多。例如广域网加速器、特殊应用访问加速以及防火墙(可以防止互联网上的非法访问)等。
网关是OSI参考模型中负责从传输层到应用层的数据进行转换和转发的设备。它与4~7层交换机一样都是处理传输层以上的数据,但是网关不仅转发数据还负责对数据进行转换,它通常会使用一个表示层或应用层网关,在两个不能进行直接通信的协议之间的进行翻译,最终实现两者之间的通信。
一个典型例子就是互联网邮件与手机邮件之间的转换服务。手机邮件有时候可能会与互联网邮件互不兼容,这是由于它们在表现层和应用层中的“电子邮件协议”互不相同所导致的的。
互联网与手机之间设置了一道网关。网关负责读取各种不同协议后,对它们逐一进行合理的转换,再将相应的数据转发出去。这样即使应用的是不同电子邮件的协议,计算机与手机之间也能相互发送邮件。
有时为了控制网络流量以及出于安全考虑,有时会使用代理服务器(Proxy Server)。这种代理服务器也是网关的一种,称为应用网关。有了代理服务器,客户端已服务器之间无需再网络层上直接通信,而是从传输层到应用层对数据和访问进行各种控制和处理。防火墙就是通过网关通信的安全性产品。
各种设备及其对应网络分层概览:
在计算机网络中有类似高速公路的部分,人们称为**“骨干”或“核心”**。它们是计算机网络的中心。人们通常会选用高速路由器相互连接使之款速传输大量数据。
网络中相应于高速公路入口的部分被称作**“边缘网络”**,常用的设备由多功能路由器(在路由器基本功能上增加了按顺序/种类发送数据的公恩那个,可以根据TCP/IP层的协议变换处理方法)和3层交换机。
高速公路出入口通常连接国道,省道,从而可以通往市区街道。计算机网络中连接“边缘网络”的部分叫做**“接入层”或“汇聚层”**。
这样,骨干网可以专注于如何提高业务传输性能和网络的生存性,而将具有业务智能化的高速路由器和交换机移到网络的边缘。边缘网络的常用设备多为2层交换机或3层交换机。
人们在家或公司连接互联网时,一般会使用互联网接入服务。联网之后,汇集到无线局域网路由器和最近交换机的通信会再次被连接到前面所提到的“接入层”,设置还有可能通过“边缘网络”或“主干网”实现与目标地址之间的通信。
在公司规模较大,网络使用者较多,或者从外部有大量访问进入的情况下,有时可以直接连接到“边缘网络”。
手机一开机,就会自动与距离最近的基站发生无线通信。基站上设有特定手机基站天线,基地本身也就相当于网络的“接入层”。
由一步手机终端发送信号给另一个终端时,它所发出的请求会一直传送到注册对端手机号码的基站,如果对方接听了电话,就等于在这两部手机之间建立了通信连接。
基站收集的通信请求被汇集到控制中心(“边缘网络”),之后会再被接入到互联通信控制中心的主干网。这种手机网络的构成与互联网接入服务很相似。
为了解决高并发问题,减少访问延迟,会进行托管主机服务,集合多个存储于一起,通过连接高速网络,以提高响应速度。这种方式被称为数据中心。
数据中心由大型服务器、存储以及计算机网络构成。数据中心内部网络中分布着3层交换机和高速路由器。
虚拟化和云
虚拟化是指当一个网站需要调整运营所使用的的资源时,并不增减服务器、存储设备、网络等实际物理设备,而是利用软件讲这些物理设备虚拟化,在有必要时增减资源的时候,通过软件按量增减的一种机制、
利用虚拟化技术,根据使用者的情况动态调整必要资源的机制被人们称为“云”。