目录
传输方式的分类
面向有连接型与面向无连接型
面向有连接型
面向有连接型中,在发送数据之前,需要在收发主机之间连接一条通信线路。
面向有连接型就好比人们平常打电话,输入完对方电话号码拨出之后,只有 对端拿起电话才能真正通话,通话结束后将电话机扣上就如同切断电源。因此在 面向有连接的方式下,必须在通信传输前后,专门进行建立和断开连接的处理。 如果与对端之间无法通信,就可以避免发送无谓的数据。
面向无连接型
面向无连接型则不要求建立和断开连接。发送端可于任何时候自由发送数据。反之,接收端也永远不知道自己会在何时从哪里收到数据。因此,在面向无连接的情况下,接收端需要时常确认是否收到了数据。
这就如同人们去邮局寄包裹一样。负责处理邮递业务的营业员,不需要确认 收件人的详细地址是否真的存在,也不需要确认收件人是否能收到包裹,只要发 件人有一个寄件地址就可以办理邮寄包裹的业务。面向无连接通信与电话通信不 同,它不需要拨打电话、挂掉电话之类的处理,而是全凭发送端自由地发送自己 想要传递出去的数据。
因此,在面向无连接的通信中,不需要确认对端是否存在。即使接收端不存 在或无法接收数据,发送端也能将数据发送出去。
电路交换与分组交换
目前,网络通信方式大致分为两种, 电路交换技术 的历史相对久远,主要用于过去的电话网。而分组交换技术则是一种较新的通信 方式,从20世纪60年代后半叶才开始逐渐被人们认可。TCP/ IP, 正是采用了分组交换技术。
电路交换
在电路交换中,交换机主要负责数据的中转处理。计算机首先被连接到交换机 上,而交换机与交换机之间则由众多通信线路再继续连接。因此计算机之间在发送 数据时,需要通过交换机与目标主机建立通信电路。我们将连接电路称为建立连 接。建立好连接以后,用户就可以一直使用这条电路,直到该连接被断开为止。
如果某条电路只是用来连接两台计算机的通信线路,就意味着只需在这两台 计算机之间实现通信,因此这两台计算机是可以独占线路进行数据传输的。但是, 如果一条电路上连接了多台计算机,而这些计算机之间需要相互传递数据,就会 出现新的问题。鉴千一台计算机在收发信息时会独占整个电路,其他计算机只能 等待这台计算机处理结束以后才有机会使用这条电路收发数据。并且在此过程中, 谁也无法预测某一台计算机的数据传输从何时开始又在何时结束。如果并发用户 数超过交换机之间的通信线路数,就意味着通信根本无法实现。
分组交换
为此,人们想到了一个新的方法,即让连接到通信电路的计算机将所要发送 的数据分成多个数据包,按照一定的顺序排列之后分别发送。这就是分组交换。 有了分组交换,数据被细分后,所有的计算机就可以一齐收发数据,这样也就提 高了通信线路的利用率。由于在分组的过程中,已经在每个分组的首部写入了发 送端和接收端的地址,所以即使同一条线路同时为多个用户提供服务,也可以明 确区分每个分组数据发往的目的地,以及它是与哪台计算机进行的通信。
在分组交换中,由分组交换机(路由器)连接通信线路。分组交换的大致处 理过程是:发送端计算机将数据分组发送给路由器,路由器收到这些分组数据以 后,缓存到自己的缓冲区,然后再转发给目标计算机。因此,分组交换也有另一 个名称:蓄积交换。
路由器接收到数据以后会按照顺序缓存到相应的队列当中,再以先进先出的顺序将它们逐个发送出去
在分组交换中,计算机与路由器之间以及路由器与路由器之间通常只有一条 通信线路。因此,这条线路其实是一条共享线路。在电路交换中,计算机之间的 传输速度不变。然而在分组交换中,通信线路的速度可能会有所不同。根据网络 拥堵的情况,数据达到目标地址的时间有长有短。另外,路由器的缓存饱和或溢 出时,甚至可能会发生分组数据丢失、无法发送到对端的情况。
根据接收端数量分类
网络通信当中,也可以根据目标地址的个数及其后续的行为对通信进行分类。如广播、多播等就是这种分类的产物。
单播(Unicast)
字面上,"Uni"表示"1", "Cast"意为"投掷"。组合起来就是指1对1通 信。早先的固定电话就是单播通信的一个典型例子。
广播(Broadcast)
字面上具有"播放”之意。因此它指是将消息从1台主机发送给与之相连的所有其他主机。广播通信的一个典型例子就是电视播放,它将电视信号一齐发送给非特定的多个接收对象。
此外,我们知道电视信号一般都有自己的频段。只有在相应频段的可接收范 围内才能收到电视信号。与之类似,进行广播通信的计算机也有它们的广播范围。 只有在这个范围之内的计算机才能收到相应的广播消息。这个范围叫做广播域。
多播(Multicast)
多播与广播类似,也是将消息发给多个接收主机。不同之处在于多播要限定,某一组主机作为接收端。多播通信最典型的例子就是电视会议,这是由多组人在不同的地方参加的一种远程会议。在这种形式下,会由一台主机发送消息给特 定的多台主机。电视会议通常不能使用广播方式。否则将无从掌握是谁在哪儿参 与电视会议。
任播(Anycast)
任播是指在特定的多台主机中选出一台作为接收端的一种通信方式。虽然, 这种方式与多播有相似之处,都是面向特定的一群主机,但是它的行为却与多播不同。任播通信"从目标主机群中选择一台最符合网络条件的主机作为目标主机发送消息。通常,所被选中的那台特定主机将返回一个单播信号,随后发送端主 机会只跟这台主机进行通信。
任播在实际网络中的应用有DNS根域名解析服务器。
地址
通信传输中,发送端和接收端可以被视为通信主体。它们都能由一个所谓 “地址”的信息加以标识出来。当人们使用电话时,电话号码就相当于“地址”。 当人们选择写信时,通信地址加上姓名就相当千“地址”。
现实生活当中的“地址”比较容易理解,然而在计算机通信当中,这种地址 的概念显得要复杂一些。因为在实际的网络通信当中,每一层的协议所使用的地 址都不尽相同。例如,TCP/IP通信中使用MAC地址、IP地址 、端口号等信息作为地址标识。甚至在应用层中,可以将 电子邮件地址作为网络通信的地址。
地址的唯一性
如果想让地址在通信当中发挥作用,首先需要确定通信的主体。一个地址必 须明确地表示一个主体对象。在同一个通信网络中不允许有两个相同地址的通信 主体存在。这也就是地址的唯一性。
到此为止,读者可能会有一个疑问。前面提到,在同一个通信网络中不允许 有两个相同地址的通信主体存在。这在单播通信中还好理解,因为通信两端都是 单一的主机。那么对于广播、多播、任播通信该如何理解呢?岂不是通信接收端 都被赋予了同一个地址?其实,在某种程度上,这样理解有一定的合理性。在上 述这些通信方式中,接收端设备可能不止一个。为此,可以对这些由多个设备组 成的一组通信赋予同一个具有唯一特性的地址,从而可以避免产生歧义,明确接 收对象。
举个简单的多播的例子。某位老师说:“一年一班的同学们请起立!”其中,“一年一班”实际上就明确地指代了目标对象。此时, “一年一班”就是这一次 “多播"的目标地址,具有唯一性。
再举一个任播的例子。老师又说:“一年一班的哪位同学过来把你们班的学 习资料取走!”此时“一年一班的哪位同学” (任意一位同学)就成为了此次 “任播"的目标地址,具有唯一性。
地址的层次性
当地址总数并不是很多的情况下,有了唯一地址就可以定位相互通信的主体。
然而,当地址的总数越来越多时,如何高效地从中找出通信的目标地址将成为一 个重要的问题。为此人们发现地址除了具有唯一性还需要具有层次性。其实,在 使用电话和信件通信的过程当中,早已有了地址分层这种概念。例如,电话号码 包含国家区号和国内区号,通信地址包含国名、省名、市名和区名等。正是有了 这种层次分类才能更加快速地定位某一个地址。
MAC地址和IP地址在标识一个通信主体时虽然都具有唯一性,但是它们当 中只有IP地址具有层次性。
MAC地址由设备的制造厂商针对每块网卡”进行分别指定。人们可以通过制 造商识别号、制造商内部产品编号以及产品通用编号确保MAC地址的唯一性。然 而,人们无法确定哪家厂商的哪个网卡被用到了哪个地方。虽然MAC地址中的制 造商识别号、产品编号以及通用编号等信息在某种程度上也具有一定的层次性, 但是对于寻找地址并没有起到任何作用,所以不能算作有层次的地址。正因如此, 虽然MAC地址是真正负责最终通信的地址,但是在实际寻址过程中,IP地址却 必不可少。
那么IP地址又是怎样实现分层的呢?一方面,IP地址由网络号和主机号两部 分组成。即使通信主体的IP地址不同,若主机号不同,网络号相同,说明它们处于同一个网段。通常,同处一个网段的主机也都属于同一个部门或集团组织。另 一方面,网络号相同的主机在组织结构、提供商类型和地域分布上都比较集中, 也为IP寻址带来了极大的方便。这也是为什么说IP地址具有层次性的原因。
网络传输中,每个节点会根据分组数据的地址信息,来判断该报文应该由哪 个网卡发送出去。为此,各个地址会参考一个发出接口列表。在这一点上MAC寻 址与IP寻址是一样的。只不过MAC寻址中所参考的这张表叫做地址转发表,而 IP寻址中所参考的叫做路由控制表。MAC地址转发表中所记录的是实际的MAC 地址本身,而路由表中记录的IP地址则是集中了之后的网络号。
网络的构成要素-网络硬件设备
通信媒介与数据链路
计算机网络是指计算机与计算机相连而组成的网络。
计算机之间通过电缆相互连接。电缆可以分为很多种,包括双绞线电缆、光 纤电缆、同轴电缆、串行电缆等。根据数据链路的不同,选用的电缆类型也不尽 相同。而媒介本身也可以被划分为电波、微波等不同类型的电磁波。
网卡
任何一台计算机连接网络时,必须要使用网卡(全称为网络接口卡)。网络 接口卡(NIC)有时也被叫做网络适配器、网卡、LAN卡。
最近,很多产品目录中都加人了“内置LAN端口”的参数,说明越来越多的 计算机在出厂设置中就具备了以太网(Ethernet) lOOOBASE-T或lOOBASE-TX的 端口。没有配置NIC的计算机如果想接入以太网,至少得外接一个扩展槽以便 插人NIC。无线局域网的情况下也是如此,计算机必须具备能够接人无线网的 NIC才能保证连接到网络。笔记本电脑如果没有内置的NIC, 可以通过 ExpressCard"'或CardBus、压缩闪存以及USB方式插一块NIC以后再连网。
中继器
中继器(Repeater)是在OSI模型的第1层一一物理层面上延长网络的设备。
由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆。
一般情况下,中继器的两端连接的是相同的通信媒介,但有的中继器也可以 完成不同媒介之间的转接工作。例如,可以在同轴电缆与光缆之间调整信号。然 而,在这种情况下,中继器也只是单纯负责信号在0和1比特流之间的替换,并 不负责判断数据是否有错误。同时,它只负责将电信号转换为光信号,因此不能 在传输速度不同的媒介之间转发。
通过中继器而进行的网络延长,其距离也并非可以无限扩大。例如一个10Mbps的以太网最多可以用4个中继器分段连接,而一个100Mbps的以太网则最 多只能连两个中继器。
有些中继器可以提供多个端口服务。这种中继器被称作中继集线器或集线器。
因此,集线器也可以看作是多口中继器,每个端口都可以成为一个中继器。
网桥/2层交换机
网桥是在OSI模型的第2层一数据链路层面上连接两个网络的设备。它能够识别数据链路层中的数据帧并将这些数据帧临时存储于内存,再重新生成 信号作为一个全新的帧转发给相连的另一个网段。由千能够存储这些数据帧, 网桥能够连接lOBA.SE-T与lOOBA.SE-TX等传输速率完全不同的数据链路,并且 不限制连接网段的个数。
数据链路的数据帧中有一个数据位叫做FCS, 用以校验数据是否正确送达目 的地。网桥通过检查这个域中的值,将那些损坏的数据丢弃,从而避免发送给其 他的网段。此外,网桥还能通过地址自学机制和过滤功能控制网络流量。
这里所说的地址是指MAC地址、硬件地址、物理地址以及适配器地址,也就 是网络上针对NIC分配的具体地址。主机A与主机B之间进行 通信时,只针对主机A发送数据帧即可。网桥会根据地址自学机制来判断是否需 要转发数据帧。
这类功能是OSI参考模型的第2层(数据链路层)所具有的功能。为此,有 时也把网桥称作2层交换机(12交换机)。
有些网桥能够判断是否将数据报文转发给相邻的网段,这种网桥被称作自学式网桥。这类网桥会记住曾经通过自己转发的所有数据帧的MAC地址,并保存到 自己里的内存表中。由此,可以判断哪个网段中包含持有哪类MA.C地址的设备。
以太网等网络中经常使用的交换集线器(Hub"'), 现在基本也属于网桥的一 种。交换集线器中连接电缆的每个端口都能提供类似网桥的功能。
路由器/3层交换机
路由器是在OSI模型的第3层——网络层面上连接两个网络、并对分组报文 进行转发的设备。网桥是根据物理地址(MAC地址)进行处理,而路由器/3层 交换机则是根据IP地址进行处理的。由此,TCP/IP中网络层的地址就成为了IP 地址。
路由器可以连接不同的数据链路。例如连接两个以太网,或者连接一个以太 网与一个FDDI。现在,人们在家或办公室里连接互联网时所使用的宽带路由器也 是路由器的一种。
路由器还有分担网络负荷的作用,甚至有些路由器具备一定的网络安全功 能。因此,在连接网络与网络的设备当中,路由器起着极为重要的作用。
4 ~ 7层交换机
4 -7层交换机负责处理OSI模型中从传输层至应用层的数据。如果用TCP/IP 分层模型来表述, 4 -7层交换机就是以TCP等协议的传输层及其上面的应用层 为基础,分析收发数据,并对其进行特定的处理。
例如,对于并发访问量非常大的一个企业级Web站点,使用一台服务器不 足以满足前端的访问需求,这时通常会架设多台服务器来分担。这些服务器前端 访问的入口地址通常只有一个(企业为了使用者的方便,只会向最终用户开放一 个统一的访问URL)。为了能通过同一个URL将前端访问分发到后台多个服务器 上,可以在这些服务器的前端加一个负载均衡器。这种负载均衡器就是4 -7层交 换机的一种。
此外,实际通信当中,人们希望在网络比较拥堵的时候,优先处理像语音这 类对及时性要求较高的通信请求,放缓处理像邮件或数据转发等稍有延迟也并无大碍的通信请求。这种处理被称为带宽控制,也是4 -7层交换机的重要功能 之一。
除此之外,4 -7层交换机的应用场景还有很多。例如广域网加速器、特殊应 用访问加速以及防火墙(可以防止互联网上的非法访问)等。
网关
网关是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发的设 备。它与4 -7层交换机一样都是处理传输层及以上的数据,但是网关不仅转发 数据还负责对数据进行转换,它通常会使用一个表示层或应用层网关,在两个不 能进行直接通信的协议之间进行翻译,最终实现两者之间的通信。
一个非常典型的例子就是互联网邮件与手机邮件之间的转换服务。手机邮件 有时可能会与互联网邮件互不兼容,这是由于它们在表示层和应用层中的“电子 邮件协议“互不相同所导致的。
那么,为什么连到互联网的电脑与手机之间能够互发电子邮件呢?互联网与手机之间设置了一道网关。网关负责读取完各种不同的协议后, 对它们逐一进行合理的转换,再将相应的数据转发出去。这样一来即使应用的是 不同电子邮件的协议,计算机与手机之间也能互相发送邮件。
此外,在使用WWW (World Wide Web, 万维网)时,为了控制网络流量以 及出千安全的考虑,有时会使用代理服务器(Proxy Server)。这种代理服务器也 是网关的一种,称为应用网关。有了代理服务器,客户端与服务器之间无需在网 络层上直接通信,而是从传输层到应用层对数据和访问进行各种控制和处理。防火墙就是一款通过网关通信,针对不同应用提高安全性的产品。
现代网络构成(网络如何由硬件构成)
网络的构成
首先,我们以交通道路为例说明现实当中的网络配置。
每座大型城市的道路交通网中,或多或少都分布着高速公路。在计算机网络 中有类似高速公路的部分,人们称为"骨干”或“核心”。正如其名,它们是计 算机网络的中心。人们通常会选用高速路由器相互连接使之快速传输大量数据。
网络中相应于高速公路出入口的部分被称作“边缘网络"。常用的设备有多功能路由器和3层交换机。
高速公路的出入口通常连接国道、省道,从而可以通往市区街道。计算机网络中连接“边缘网络"的部分叫做“接人层”或“汇聚层"。这样,骨干网 可以专注于如何提高业务传输性能和网络的生存性,而将具有业务智能化的高 速路由器和交换机移到网络的边缘。边缘网络的常用设备多为2层交换机或3 层交换机。
互联网通信
人们在家里或公司连接互联网时,一般会使用互联网接入服务。联网之后,汇集到无线局域网路由器和最近交换机的通信会再次被连接到前面所提到的“接入层"。甚至还有可能通过“边缘网络”或“主干网”实现与目标地址之间的通信。
移动通信
手机一开机,就会自动与距离最近的基站发生无线通信。基站上设有特定手 机基站天线,基地本身也相当于网络的“接入层”。
由一部手机终端发送信号给另一个终端时,它所发出的请求会一直传送到注 册对端手机号码的基站,如果对方接听了电话,就等千在这两部手机之间建立了 通信连接。
基站收集的通信请求被汇集到控制中心(边缘网络),之后会再被接人到 互连通信控制中心的主干网。这种手机网络的构成与互联网接入服务非常相似。
从信息发布者的角度看网络
提到网络信息传播,以往比较主流的做法是,个人和企业自己制作网站(主 页)部署到服务器中将所要发布的信息公之于众。而现在,通过博客、托管主机 服务的案例日渐增多。这种方式的一大优点是不需要做服务器和网络运维的管 理,只需要关注自己所要发布信息的特定网站即可。此外,在托管主机的服务中 通常会有即时传播信息的机制。
以动画发布网站(一种替投稿者发布其动画作品的网站)为例。投稿者可能 来自世界各地。网站会负责将他(她)们的作品上传到服务器进行发布。对于那 些人气较高的动画作品,其访问量可能会达到每天几十万次。面对这么高的并发 访问量,托管主机服务,为了减少访问延迟,会集合多个存储于一起,通过连接 高速网络,以期提高响应速度。这种方式被人们称作数据中心。
数据中心由大型服务器、存储以及计算机网络构成。有些大型的数据中心甚 至直接连接”主干网”。即使是小规模的数据中心,大多数情况下也会连接到 “边缘网络”。
数据中心内部的网络中分布着3层交换机和高速路由器。为了减少网络延迟, 也有人正在研究高性能2层交换机的使用。