网络基础知识

网络基础知识

计算机网络出现的背景

计算机网络, 根据其规模可分为WAN(Wide Area Network, 广域网) (指覆盖多个远距离区域的远程网络。 比广域网再小一级的、 连接整个城市的网络叫城域网(MAN, Metropolitan Area Network) 。 )和LAN(Local Area Network, 局域网)

计算机与网络发展的7个阶段

  1. 批处理

    为了能让更多的人使用计算机, 出现了批处理(Batch Processing)系统。 所谓批处理, 是指事先将用户程序和数据装入卡带或磁带, 并由计算机按照一定的顺序读取, 使用户所要执行的这些程序和数据能够一并批量得到处理的方式。

  2. 分时系统

    指多个终端(由键盘、 显示器等输入输出设备组成。 最初还包括打字机。 ) 与同一个计算机连接, 允许多个用户同时使用一台计算机的系统。 当时计算机造价非常昂贵, 一人一台专有计算机的费用对一般人来说可望不可即。 然而分时系统的产生则实现了“一人一机”的目的, 让用户感觉就好像“完全是自己在使用一台计算机一样”。 这也体现了分时系统的一个重要特性——独占性 。

  3. 计算机之间的通信

  4. 计算机网络的产生

  5. 互联网的普及

  6. 以互联网技术为中心的时代

  7. 从“单纯建立连接”到“安全建立连接”

协议分层与OSI参考模型

  • 应用层

    为应用程序提供服务并规定应用程序中通信相关的细节。 包括文件传输、 电子邮件、 远程登录(虚拟终端) 等协议。

  • 表示层

    将应用处理的信息转换为适合网络传输的格式, 或将来自下一层的数据转换为上层能够处理的格式。 因此它主要负责数据格式的转换。具体来说, 就是将设备固有的数据格式转换为网络标准传输格式。不同设备对同一比特流解释的结果可能会不同。 因此, 使它们保持一致是这一层的主要作用。

  • 会话层

    负责建立和断开通信连接(数据流动的逻辑通路) , 以及数据的分割等数据传输相关的管理。

  • 传输层

    起着可靠传输的作用。 只在通信双方节点上进行处理, 而无需在路由器上处理。

  • 网络层

    将数据传输到目标地址。 目标地址可以是多个网络通过路由器连接而成的某一个地址。 因此这一层主要负责寻址和路由选择。

  • 数据链路层

    负责物理层面上互连的、 节点之间的通信传输。 例如与1个以太网相连的2个节点之间的通信。将0、 1序列划分为具有意义的数据帧传送给对端(数据帧的生成与接收) 。

  • 物理层

    负责0、 1比特流(0、 1序列) 与电压的高低、 光的闪灭之间的互换。

传输方式的分类

面向有连接型与面向无连接型

  • 面向有连接型:在发送数据之前, 需要在收发主机之间连接一条通信线路

  • 面向无连接型:不要求建立和断开连接

电路交换与分组交换

在电路交换中, 交换机主要负责数据的中转处理。 计算机首先被连接到交换机上, 而交换机与交换机之间则由众多通信线路再继续连接。因此计算机之间在发送数据时, 需要通过交换机与目标主机建立通信电路。 我们将连接电路称为建立连接。 建立好连接以后, 用户就可以一直使用这条电路, 直到该连接被断开为止。

让连接到通信电路的计算机将所要发送的数据分成多个数据包, 按照一定的顺序排列之后分别发送。这就是分组交换。在分组交换中, 由分组交换机(路由器) 连接通信线路。 分组交换的大致处理过程是: 发送端计算机将数据分组发送给路由器, 路由器收到这些分组数据以后, 缓存到自己的缓冲区, 然后再转发给目标计算机。 因此, 分组交换也有另一个名称: 蓄积交换。

路由器接收到数据以后会按照顺序缓存到相应的队列当中, 再以先进先出的顺序将它们逐一发送出去(有时, 也会优先发送目标地址比较特殊的数据。 ) 。

在分组交换中, 计算机与路由器之间以及路由器与路由器之间通常只有一条通信线路。 因此, 这条线路其实是一条共享线路。 在电路交换中, 计算机之间的传输速度不变。 然而在分组交换中, 通信线路的速度可能会有所不同。 根据网络拥堵的情况, 数据达到目标地址的时间有长有短。 另外, 路由器的缓存饱和或溢出时, 甚至可能会发生分组数据丢失、 无法发送到对端的情况。

根据接收端数量分类

网络通信当中, 也可以根据目标地址的个数及其后续的行为对通信进行分类。 如广播、 多播等就是这种分类的产物。

  • 单播(Unicast):字面上, “Uni”表示“1”, “Cast”意为“投掷”。 组合起来就是指1对1通信。 早先的固定电话就是单播通信的一个典型例子。

  • 广播(Broadcast):指将消息从1台主机发送给与之相连的所有其他主机。 广播通信的一个典型例子就是电视播放, 它将电视信号一齐发送给非特定的多个接收对象。

    此外, 我们知道电视信号一般都有自己的频段。 只有在相应频段的可接收范围内才能收到电视信号。 与之类似, 进行广播通信的计算机也有它们的广播范围。 只有在这个范围之内的计算机才能收到相应的广播消息。 这个范围叫做广播域。

  • 多播(Multicast):多播与广播类似, 也是将消息发给多个接收主机。 不同之处在于多播要限定某一组主机作为接收端。 多播通信最典型的例子就是电视会议, 这是由多组人在不同的地方参加的一种远程会议。 在这种形式下, 会由一台主机发送消息给特定的多台主机。 电视会议通常不能使用广播方式。 否则将无从掌握是谁在哪儿参与电视会议。

  • 任播(Anycast):任播是指在特定的多台主机中选出一台作为接收端的一种通信方式。 虽然, 这种方式与多播有相似之处, 都是面向特定的一群主机, 但是它的行为却与多播不同。 任播通信从目标主机群中选择一台最符合网络条件的主机作为目标主机发送消息。 通常, 所被选中的那台特定主机将返回一个单播信号,随后发送端主机会只跟这台主机进行通信。任播在实际网络中的应用有DNS根域名解析服务器

地址

如果想让地址在通信当中发挥作用, 首先需要确定通信的主体。 一个地址必须明确地表示一个主体对象。 在同一个通信网络中不允许有两个相同地址的通信主体存在。 这也就是地址的唯一性。

当地址总数并不是很多的情况下, 有了唯一地址就可以定位相互通信的主体。 然而, 当地址的总数越来越多时, 如何高效地从中找出通信的目标地址将成为一个重要的问题。 为此人们发现地址除了具有唯一性还需要具有层次性。 其实, 在使用电话和信件通信的过程当中, 早已有了地址分层这种概念。 例如, 电话号码包含国家区号和国内区号, 通信地址包含国名、 省名、 市名和区名等。 正是有了这种层次分类才能更加快速地定位某一个地址。

网络的构成要素

通信媒介与数据链路

网卡

任何一台计算机连接网络时, 必须要使用网卡(全称为网络接口卡) 。 网络接口卡(NIC(集成了连接局域网功能的设备。 有时会被集成到计算机的主板中, 有时也可以单独插入扩展槽使用。 Network Information Center的缩写也是NIC, 所以要注意区分。 ) ) 有时也被叫做网络适配器、 网卡、 LAN卡。

中继器

中继器(Repeater) 是在OSI模型的第1层——物理层面上延长网络的设备。 由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆。

一般情况下, 中继器的两端连接的是相同的通信媒介, 但有的中继器也可以完成不同媒介之间的转接工作。 例如, 可以在同轴电缆与光缆之间调整信号。 然而, 在这种情况下, 中继器也只是单纯负责信号在0和1比特流之间的替换, 并不负责判断数据是否有错误。 同时, 它只负责将电信号转换为光信号, 因此不能在传输速度不同的媒介之间转发(用中继器无法连接一个100Mbps的以太网和另一个10Mbps的以太网。连接两个不同速度的网络需要的是网桥或路由器这样的设备。 ) 。

通过中继器而进行的网络延长, 其距离也并非可以无限扩大。 例如一个10Mbps的以太网最多可以用4个中继器分段连接, 而一个100Mbps的以太网则最多只能连两个中继器。

有些中继器可以提供多个端口服务。 这种中继器被称作中继集线器或集线器。 因此, 集线器(中继集线器也可以简称为集线器或Hub。 但现在人们常说的Hub更多是指1.9.4节所要介绍的交换式集线器。 ) 也可以看作是多口中继器, 每个端口都可以成为一个中继器。

网桥/2层交换机

网桥是在OSI模型的第2层——数据链路层面上连接两个网络的设备。 它能够识别数据链路层中的数据帧(与分组数据意思大致相同, 但是在数据链路层中通常习惯称为帧。) , 并将这些数据帧临时存储于内存, 再重新生成信号作为一个全新的帧转发给相连的另一个网段。 由于能够存储这些数据帧, 网桥能够连接10BASE-T与100BASE-TX等传输速率完全不同的数据链路, 并且不限制连接网段的个数。

数据链路的数据帧中有一个数据位叫做FCS(用CRC(Cyclic Redundancy Check, 循环冗余校验码) 方式校验数据帧中的位。 有时由于噪音导致通信传输当中数据信号越来越弱, 而这种CRC正是用来检查数据帧是否因此而受到破坏的。 ) , 用以校验数据是否正确送达目的地。 网桥通过检查这个域中的值, 将那些损坏的数据丢弃, 从而避免发送给其他的网段。 此外, 网桥还能通过地址自学机制和过滤功能控制网络流量(网络上传输的数据报文的数量。 ) 。

这里所说的地址是指MAC地址、 硬件地址、 物理地址以及适配器地址, 也就是网络上针对NIC分配的具体地址。 如图1.42所示, 主机A与主机B之间进行通信时, 只针对主机A发送数据帧即可。 网桥会根据地址自学机制来判断是否需要转发数据帧。

这类功能是OSI参考模型的第2层(数据链路层) 所具有的功能。 为此, 有时也把网桥称作2层交换机(L2交换机) 。

有些网桥能够判断是否将数据报文转发给相邻的网段, 这种网桥被称作自学式网桥。 这类网桥会记住曾经通过自己转发的所有数据帧的MAC地址, 并保存到自己里的内存表中。 由此, 可以判断哪个网段中包含持有哪类MAC地址的设备。

以太网等网络中经常使用的交换集线器(Hub(具有网桥功能的Hub叫做交换集线器。 只有中继器功能的Hub叫做集线器。 ) ) , 现在基本也属于网桥的一种。 交换集线器中连接电缆的每个端口都能提供类似网桥的功能。

路由器/3层交换机

路由器是在OSI模型的第3层——网络层面上连接两个网络、 并对分组报文进行转发的设备。 网桥是根据物理地址(MAC地址) 进行处理, 而路由器/3层交换机则是根据IP地址进行处理的。 由此, TCP/IP中网络层的地址就成为了IP地址。

路由器可以连接不同的数据链路。 例如连接两个以太网, 或者连接个以太网与一个FDDI。 现在, 人们在家或办公室里连接互联网时所使用的宽带路由器也是路由器的一种。

路由器还有分担网络负荷的作用(由于路由器会分割数据链路, 因此数据链路层的广播消息将无法继续传播。) , 甚至有些路由器具备一定的网络安全功能。 因此, 在连接网络与网络的设备当中, 路由器起着极为重要的作用。

4~7层交换机

4~7层交换机负责处理OSI模型中从传输层至应用层的数据。 如果用TCP/IP分层模型来表述 , 4~7层交换机就是以TCP等协议的传输层及其上面的应用层为基础, 分析收发数据, 并对其进行特定的处理。

例如, 对于并发访问量非常大的一个企业级Web站点(由URL 指定的连接到互联网的一台或一群服务器。 目前根据信息内容可分为游戏站点、 资源下载站点以及Web站点等多种类型。 ) , 使用一台服务器不足以满足前端的访问需求, 这时通常会架设多台服务器来分担。 这些服务器前端访问的入口地址通常只有一个(企业为了使用者的方便, 只会向最终用户开放一个统一的访问URL) 。 为了能通过同一个URL将前端访问分发到后台多个服务器上, 可以在这些服务器的前端加一个负载均衡器。 这种负载均衡器就是4~7层交换机的一种。

此外, 实际通信当中, 人们希望在网络比较拥堵的时候, 优先处理像语音这类对及时性要求较高的通信请求, 放缓处理像邮件或数据转发等稍有延迟也并无大碍的通信请求。 这种处理被称为带宽控制, 也是4~7层交换机的重要功能之一。

除此之外, 4~7层交换机的应用场景还有很多。 例如广域网加速器、 特殊应用访问加速以及防火墙(可以防止互联网上的非法访问)等。

网关

网关是OSI参考模型中负责将从传输层到应用层的数据进行转换和转发的设备(依照惯例, 路由器的表现与“网关” 相似。 但是本书所指的“网关” 仅限于OSI参考模型中依输层以上各个分层中进行协议转换的设备或部件。 ) 。 它与4~7层交换机一样都是处理传输层及以上的数据, 但是网关不仅转发数据还负责对数据进行转换, 它通常会使用一个表示层或应用层网关, 在两个不能进行直接通信的协议之间进行翻译, 最终实现两者之间的通信。

一个非常典型的例子就是互联网邮件与手机邮件之间的转换服务。手机邮件有时可能会与互联网邮件互不兼容, 这是由于它们在表示层和应用层中的“电子邮件协议”互不相同所导致的。

那么, 为什么连到互联网的电脑与手机之间能够互发电子邮件呢?互联网与手机之间设置了一道网关。 网关负责读取完各种不同的协议后, 对它们逐一进行合理的转换, 再将相应的数据转发出去。 这样一来即使应用的是不同电子邮件的协议, 计算机与手机之间也能互相发送邮件。

此外, 在使用WWW(World Wide Web, 万维网) 时, 为了控制网络流量以及出于安全的考虑, 有时会使用代理服务器(Proxy Server) 。 这种代理服务器也是网关的一种, 称为应用网关。 有了代理服务器, 客户端与服务器之间无需在网络层上直接通信, 而是从传输层到应用层对数据和访问进行各种控制和处理。 防火墙就是一款通过网关通信, 针对不同应用提高安全性的产品。

posted @ 2021-07-06 17:16  睿阳  阅读(385)  评论(0编辑  收藏  举报