计算机网络 第一章 引言

发布于 2023-06-28  463 次阅读


什么是计算机网络

分布式系统

计算机网络

分布式系统

(distributed system)

由一组独立计算机组成的分布式系统呈现给用户的是一个关联系统

一般来说,在用户看来,分布式系统只是一个模型或范型。通常在操作系统之上有层软件负责实现这个模型,这个软件就称为中间件 (middleware)。

典例:WWW(World wide Web万维网)。万维网运行在Internet之上,这个模型的所有一切都表现得像是一个文档(Web 页面)一样。

计算机网络

(computer networks)

一组通过单一技术相互连接的自主计算机集合

在计算机网络中,这种一致性、模型以及软件都不存在。

用户看到的是实际的机器,系统并没有努力使这些机器看起来一样,或者试图使它们的行为保持一致。

如果机器有不同的硬件或者不同的操作系统,那么这些差异对于用户来说是完全可见的。

典例:Internet

网络硬件

img

传输技术

传输技术分为:广播式链路和点到点链路

点到点(point-to-point)链路将一对单独的机器连接起来。有时候也称为单播(unicasting)。

广播链路(广播网络),通信信道被网络上的所有机器所共享;任何一台机器发出的数据包能被所有其他任何机器收到。分为广播(boradcasting)和组播(multicasting)。

两个或多个网络的连接称为互联网络(internetwork)。全球性的 Internet 是最著名的互联网络实例(但不是唯一的)。

网络尺度

img

个域网

(PAN, Personal Area Network)

蓝牙(bluetooth):蓝牙网络采用主-从操作模式,系统单元(PC 机)通常是主设备,与鼠标、键盘等从设备通信。我们将在第 4 章更详细地讨论蓝牙。

PAN 也可以采用其他短程通信技术来搭建,比如智能卡和图书馆书籍上的 RFID。我们将在第 4 章中学习RFID。

局域网

(LAN,Local Area Network)

img

(更正:总线型和星型多用于局域网)

局域网是一种私有网络,一般在一座建筑物内或建筑物附近,比如家庭、办公室或工厂。局域网络被广泛用来连接个人计算机和消费类电子设备,使它们能够共享资源(比如打印机)和交换信息。当局域网被用于公司时,它们就称为企业网络(enterprise nework)。

无线局域网:每台计算机与安装在天花板上的一个设备通信,每台计算机都有一个无线调制解调器和一个天线。

这个设备,称为接入点AP,Access Point)、无线路由器(wireless router)或者基站(base station),它主要负责中继无线计算机之间的数据包,还负责中继无线计算机和 Internet 之间的数据包。

无线局域网的一个标准称为 IEEE 802.11,俗称为 WiFi

速度:11 Mbps 到几百个 Mbps 。我们将在第 4 章讨论 IEEE 802.11。

我们在本书中将沿用传统的线路测量速率:1 Mbps(兆比特/秒)等于 1 000 000 比特/秒;1 Gbps(吉比特/秒)等于 1 000 000 000比特/秒。

有线局域网:使用铜线或光纤

局域网的大小受到限制,这意味着最坏情况下的传输时间也是有界的,并且事先可以知道。了解这些界限有助于网络协议的设计。

速度:100 Mbps 到 1 Gbps 之间,延迟很低(微秒或纳秒级),而且很少发生错误。较新的局域网可以工作在高达 10 Gbps 的速率。和无线网络相比,有线局域网在性能的所有方面都超过了它们。因为通过电线或通过光纤发送信号比通过空气发送信号更容易。

许多有线局域网的拓扑结构是以点到点链路为基础的。

俗称以太网(Ethernet)的 IEEE 802.3 是迄今为止最常见的一种有线局域网。图 1-8(b)显示了一个交换式以太网(switched Ethernet)的拓扑例子。

每台计算机按照以太网协议规定的方式运行,通过一条点到点链路连接到一个盒子,这个盒子称为交换机(switch)。这就是交换式以太网名字的由来。一个交换机有多个端口(port),每个端口连接一台计算机。交换机的工作是中继与之连接的计算机之间的数据包,根据每个数据包中的地址来确定这个数据包要发送给哪台计算机。我们将在第 4 章了解交换机是如何工作的。

image-20230628171417120

虚拟局域网(Virtual LAN 或 VLAN):由于网络设备的布局不一定与组织结构匹配,将一个大的物理局域网分成两个较小的逻辑局域网。在这个设计中,每个端口都带有一个“彩色”的标签,比如说绿色表示工程部门,而红色表示财务部门。然后交换机在转发数据包时,将连到绿色端口的计算机和连到红色端口的计算机区别开来。例如,在红色端口上发送的广播数据包将不会被连到绿色端口上的计算机收到,就好像存在两个不同的局域网一样。我们将在第 4 章的结尾时讨论 VLAN。

经典以太网(classic Ethernet):事实上,交换式以太网是原始以太网设计的一个现代版。在最初的以太网设计中,所有的数据包在一条线性电缆上广播,因而一次至多只有一台机器能够成功发送,为此,需要一个分布式仲裁机制来解决冲突问题。分布式仲裁机制的算法非常简单:只要电缆空闲计算机就可以传输;如果两个或两个以上的数据包发生冲突,每台计算机只是等待一个随机时间后再次试图发送。为清晰起见,我们称该版本的以太网为经典以太网。你将在第 4 章了解它。

无线和有线广播网络可分为静态分配信道动态分配信道。一个典型的静态分配方案是将时间划分成离散的时间间隔(译注:这段间隔就称为时间槽)并使用轮循算法,每台机器只能在分配给它的时间槽(time slot)到来时广播。当一台机器在分配给它的时间槽到来时没有任何数据需要发送,这种静态分配算法就浪费了信道容量(译注:此时其他计算机也不允许发送),因此大多数系统都试图动态分配信道(即按需分配)。一个公共信道的动态分配方法可以是集中式的,也可以是分散式的。

城域网

城域网(MAN,Metropolitan Area Network)的范围可覆盖一个城市。

最有名的城域网例子是许多城市都有的有线电视网。电视信号和 Internet 流量都先被送到一个集中式线缆前端(cable headend),然后再分发到居民的家中。我们在第 2 章将再回到这个主题的细节上来。

image-20230628174601343

有线电视不是唯一的城域网,虽然它是一种局域网。最近发展的高速无线 Internet 接入催生了另一种城域网,并且已经被标准化为 IEEE 802.16,这就是所谓的 WiMAX。我们将在第 4 章了解这种技术。

广域网

广域网(WAN,Wide Area Network)的范围很大,它能跨越很大的地理区域,通常是一个国家、地区或者一个大陆。

广域网的组成:

  • 主机(host)

  • 通信子网(communication subnet),或简称为子网(subnet):子网的工作是把信息从一个主机携带到另一个主机

在大多数广域网中,子网由两个不同组成部分:传输线路交换元素

  • 传输线路(transmission line)负责在机器之间移动比特。它们可以是铜线、光纤,或甚至无线链路。大多数公司没有铺设自己的传输线路,因此,它们从电信公司租赁传输线路。

  • 交换元素(switching element)或简称为交换机(switch)是专用的计算机,负责连接两条或两条以上的传输线路。当数据到达一条入境线路时,交换元素必须选择一条出境线路把数据转发出去。这些负责交换的计算机在过去有各种不同的名称,现在最常用的名称是路由器(router)。

“子网”的两个含义:1. 一组路由器和通信线路的集合,主要负责将数据包从源主机移动到目标主机。2. 与网络寻址紧密相关。我们将在第 5 章讨论这个新含义,第 5 章之前我们都沿用这个原有的含义(前者)。

image-20230628195841282

广域网和局域网的差异:

  1. 通常在广域网中,主机和子网是由不同的人拥有和经营。把网络中纯粹的通信方面(子网)与应用方面(主机)分离开来将大大简化整个网络的设计。
  2. 路由器通常连接不同类型的网络技术。例如,办公室内部网络可能是以太网,而长途传输线路可能是 SONET 链路(我们将在第 2 章讨论),这里显然需要某些设备将它们结合在一起。细心的读者会发现这个任务超出了我们对网络的定义。这意味着许多广域网是事实上的互联网络(internetwork),或者复合网络,即由多个网络组成的网络。
  3. 子网连接什么:子网可以连接单个计算机,就像连接到局域网的情形一样,或者连接整个局域网。这说明了大型网络是如何从小网络构造出来的。只要涉及子网,基本上都做同样的工作。
  4. (王道补充)局域网使用广播技术,广域网使用点对点等技术。局域网是基于广播技术发展起来的网络,广域网是基于交换技术发展起来的网络。区别局域网和广域网的关键在于所采用的协议,而非覆盖范围。

img

两种类型的广域网:

VPN:第一种广域网,公司并不租赁专用的传输线路,而是把自己的办事处直接连接到 Internet。在这种方式下,办事处之间可以通过虚拟链路相互连接,而这些虚拟链路使用了底层 Internet 的容量。这样的安排如图 1-11 所示,称为虚拟专用网络VPN,Virtual Private Network)。优势:VPN 具有虚拟化的一贯优势,它提供了重用某种资源(Internet 连接)的灵活性。缺点:VPN 也有虚拟化的一般缺点,即缺乏对底层资源的控制。采用专用线路能获得的容量是明确的,而使用 VPN,你走的里程数可能会随 Internet 服务的变化而有所不同。

image-20230628191337594

ISP:第二种不同的广域网,子网由不同的公司负责运营。子网经营者称为网络服务提供商(network service provider),公司办事处是它的客户。这种结构如图 1-12 所示。其他客户只要能够支付费用并且它能提供客户所需的服务,子网运营商就把这些客户也连接进来。如果客户只能给连接在同一个网络内的其他客户发送数据包,那么这将是一个令人失望的网络服务,因此子网运营商还与 Internet 的其他网络相连。这样的子网运营商称为Internet 服务提供商(ISP,Internet Service Provider),相应的子网称为 ISP 网络(ISPnetwork)。连接到 ISP 的客户就能享受 Internet 服务。

image-20230628191357296

关键问题:路由算法和转发算法,我们将在第 5 章中详细研究这两类算法。

  • 路由算法(routing algorithm):如果两个想通信的路由器没有共享同一条传输线路,那么它们必须通过其他路由器间接地进行通信。网络中可能存在许多条路径都可以连接这两个路由器。网络如何决定使用哪条路径的策略称为路由算法。

  • 转发算法(forwarding algorithm):每个路由器如何决定把一个数据包发送到哪个位置的策略称为转发算法。

其他种类的广域网使用了大量的无线技术:

卫星系统中,地面上的每台计算机都有一个天线,通过它给轨道上的卫星发送数据和接收来自卫星的数据。所有计算机都可以侦听到卫星的输出,而且在某些情况下,还能侦听到同胞计算机向上给卫星的传输。卫星网络在本质上是广播的,在某些广播属性很重要的情况下显得特别有用。

蜂窝移动电话网络:该系统已经经历了三代,而且第四代已绽露头角。第一代是模拟的,只能传语音。第二代是数字的,也只能传语音。第三代还是数字的,但可同时传语音和数据。每个蜂窝基站的覆盖范围大于无线局域网的覆盖范围,一般用公里来度量而不是几十米。基站通过一个骨干网络连接在一起,这个骨干网络通常是有线的。蜂窝网络的数据传输速率一般为 1Mbps 左右的量级,远远小于高达100Mbps 量级的无线局域网。我们在第 2 章中将详细介绍有关这些网络的内容。

互联网络

互联网络(internetwork)或互联网(internet):一组相互连接的网络

这些术语一般具有通用意义,而全球范围的因特网(Internet)则通常用首字母大写来表示(这是一个特殊的互联网络)。Internet 使用 ISP 网络来连接各种各样的企业网络、家庭网络和许多其他网络。

区分子网网络互联网络

  • “子网”通常在广域网的上下文中才有意义,它指网络运营商所拥有的一组路由器和通信线路。

  • 一个子网和它的主机结合在一起就形成了一个网络。“网络”(network)这个词的使用往往具有比较松散的含义。如果要将网络与其他安排区分开来,我们将坚持网络最初的定义,即由一种单一技术相互连接在一起的计算机集合

  • 互联网络。我们知道,当不同的网络相互连接在一起时就形成了互联网。第一,如果不同的组织出资构建了网络的不同部分,并且各自维持自己出资构建的那部分网络的运营,那么我们就说这是一个互联网络,而不是单个网络;第二,如果网络的不同部分采用了不同的底层技术(例如,广播技术与点到点链路、以及有线与无线),那么我们就说这是一个互联网络。

网关(gateway):将两个或多个网络连接起来并提供必要转换的机器,其硬件和软件方面的总称是网关。工作在协议不同层次的网关是有所区别的。“恰到好处”的中间层通常称为网络层路由器是一个网关,它在网络层交换数据包。现在,我们可以通过找到一个具有路由器的网络来定位/辨别一个互联网

拓扑结构

(王道补充)

image-20230629125354016

总线形和环形网络多用于局域网,网状形网络多用于广域网。

网络软件

协议层次结构

层次栈 (a stack of layer)或分级栈(a stack of level):每一层的目的是向上一层提供特定的服务,而把如何实现这些服务的细节对上一层加以屏蔽。从某种意义上讲,每一层都是一种虚拟机

协议 (protocol):一台机器上的第 n 层与另一台机器上的第 n 层进行对话,该对话中使用的规则和约定统称为第 n 层协议。基本上,所谓协议是指通信双方就如何进行通信的一种约定。

对等体 (peer):不同机器上构成相应层次的实体

image-20230628201942815

第 1 层下面是物理介质(physical medium),通过它进行实际的通信。在图 1-13 中,虚线表示虚拟通信,实线表示物理通信。

接口 (interface):在每一对相邻层次之间的是接口。接口定义了下层向上层提供哪些原语操作和服务

接口的设计:可能地减少层与层之间必须要传递的信息量。接口的好处:层与层之间清晰的接口使得同层协议的替换更加容易。

网络体系结构 (network architecture):层和协议的集合。

实现细节和接口规范不属于网络体系结构的内容,因为它们隐藏在机器内部,对于外界是不可见的。甚至,一个网络中所有机器上的接口也不必都一样,只要每台机器能够正确地使用所有的协议即可。

协议栈 (protocol stack):一个特定的系统所使用的一组协议,即每一层一个协议。

分层的好处:利用对等进程的思想,在设计整个网络时,可以把难以管理的任务分解成几个较小的、易于处理的设计问题,这就是分层设计。

img

(王道补充)

每一层有自己传送的数据单位,其名称、大小、含义也各有不同。

在计算机网络体系结构的各个层次中,每个报文都分为两部分:一是数据部分,即SDU;二是控制信息部分,即PCI,它们共同组成PDU。

服务数据单元 (SDU):为完成用户所要求的功能而应传送的数据。第 n 层的服务数据单元记为n-SDU。

协议控制信息 (PCI):控制协议操作的信息。第n层的协议控制信息记为n-PCI

协议数据单元(PDU):对等层次之间传送的数据单位称为该层的PDU。第n层的协议数据单元记为 n-PDU。在实际的网络中,每层的协议数据单元都有一个通俗的名称,如物理层的PDU称为比特,链路层的PDU称为帧,网络层的PDU称为分组,传输层的PDU称为报文

image-20230629154755574

层次设计问题

  • 检错 (error detection)/纠错 (error correction):从接收到的信息中发现错误所用的一种机制是检错 (error detection) 编码;然后重新传输接收到的不正确信息,直到它被正确接收为止。更强大的编码不仅能检错,还能纠错 (error correction),即从最初收到的可能不正确的比特中恢复正确的消息。这两种机制的工作都需要在被传的信息中添加冗余信息。这些冗余信息被较低层次用来保障数据包在个别链路上的正确传输,也可被较高层次用来检测接收到的数据包是否包含了正确的内容。
  • 路由 (routing):找到通过网络的工作路径。
  • 寻址 (addressing) 和命名 (naming):每一层在特定的消息中都需要一种机制来标识发送方和接收方。这种机制在下层和高层分别称为寻址 (addressing) 和命名 (naming)。
  • 网络互联 (internetworking):并非所有的通信信道都能维持在其上发送消息的顺序,这个问题导致了对消息进行编号的一些解决方案。另一个例子是网络能够传输的消息的最大长度差异,这又导致了分段机制的出现,对消息进行拆分、传输,然后重组。所有这些主题综合起来就是所谓的网络互联 (internetworking)。
  • 可扩展的 (scalable):网络规模变大时仍能工作良好的设计被说成是可扩展的 (scalable)。
  • 统计复用 (statistical multiplexing):许多网络设计根据主机的短期需求变化动态共享网络带宽,而不是给每个主机分配可能用也可能不会用的固定比例带宽。意味着根据统计需求来共享带宽。这种复用可以用在低层次的单条链路上、或者较高层次的网络层,甚至用在网络的应用层上。
  • 流量控制 (flow control):如何保持快速发送方不会用数据把慢速接收方淹没。这个问题的解决经常使用了从接收方到发送方的反馈机制。这个主题就是流量控制 (flow control)。
  • 拥塞 (congestion):因为太多的计算机要发送太多的流量,而网络又没有能力传递所有的数据包。这样的网络超载称为拥塞 (congestion)。一种策略是当发生拥塞时,每台计算机都减少其对网络的带宽需求。这种策略可用于所有层次。
  • 服务质量 (Queality of service, QoS):给予调和这些(实时(real-time)传递的应用程序,要求高吞吐量的应用程序)竞争需求机制的名称。
  • 保密性 (confidentiality):保护网络抵御各种不同的威胁
  • 认证(authentication)
  • 完整性 (integrity)

面向连接与无连接服务

image-20230628205437559

重点!
  • 面向连接的服务 (connection- oriented service):是按照电话系统建模的。这种连接最本质的方面在于它像一个管道:发送方把对象(数据位)压入管道的一端,接收方在管道的另一端将它们取出来。在绝大多数情况下,数据位保持原来的顺序,所以数据位都会按照发送的顺序到达。

    在有些情况下,当建立一个连接时,发送方、接收方和子网一起协商 (negotiation) 一组将要使用的参数,比如最大的消息长度、所要求的服务质量以及其他一些问题。一般情况下,一方提出一个建议,另一方接受或拒绝该建议,甚至提出相反的建议。

  • 无连接服务 (conncetionless service):是按照邮政系统建模的。每个报文(信件)都携带了完整的目标地址,每个报文都由系统中的中间节点路由,而且路由独立于后续报文。报文 (message) 在不同的上下文中有不同的称呼;数据包/包 (packet) 是网络层的报文。

  • 存储-转发交换 (store-and-forward switching):中间节点只能在收到报文的全部内容之后再将该报文发送给下一个节点

  • 直通式交换 (cut-through switching):在报文还没有被全部接收完毕之前就向下一个节点传输

  • 可靠的 (reliable):有些服务是可靠的,意味着它们从来不丢失数据。 一般情况下,一个可靠服务是这样实现的:接收方向发送方确认收到的每个报文,因而发送方可以据此保证报文己经到达接收方。

  • 报文序列字节流:可靠的面向连接服务有两个细微的变异形式:报文序列和字节流。在前一种变异中,报文的边界始终得到保持。发送两个 1024 字节的报文,收到的仍然是两个独立的长度为1024 字节的报文。在后一种变异中,该连接只是一个字节流,没有任何报文边界。当 2048 个字节到达接收方时,接收方无法判断发送方发出的是一个长度为 2048 字节的报文,还是两个长度为 1024 字节的报文,或者是 2048个长度只有 1 字节的报文。

  • 数据报服务 (datagram service):不可靠(意味着没有被确认)的无连接服务通常称为数据报服务 (datagram service)

  • 有确认的数据报服务(acknowledged datagram service)

  • 请求-应答服务 (request-reply service):在这种服务中,发送方传输一个包含了某个请求的数据报;接受方以一个包含了请求结果的应答数据报作为反馈

交换技术

(王道补充)

电路交换网络。在源结点和目的结点之间建立一条专用的通路用于传送数据,包括建立连接、传输数据和断开连接三个阶段。最典型的电路交换网是传统电话网络。该类网络的主要特点是整个报文的比特流连续地从源点直达终点,好像是在一条管道中传送。优点是数据直接传送、时延小。缺点是线路利用率低、不能充分利用线路容量、不便于进行差错控制。

报文交换网络。用户数据加上源地址、目的地址、校验码等辅助信息,然后封装成报文。整个报文传送到相邻结点,全部存储后,再转发给下一个结点,重复这一过程直到到达目的结点。每个报文可以单独选择到达目的结点的路径。报文交换网络也称存储-转发网络,主要特点是整个报文先传送到相邻结点,全部存储后查找转发表,转发到下一个结点。优点是可以较为充分地利用线路容量,可以实现不同链路之间不同数据率的转换,可以实现格式转换,可以实现一对多、多对一的访问,可以实现差错控制。缺点是增大了资源开销(如辅助信息导致处理时间和存储资源的开销),增加了缓冲时延,需要额外的控制机制来保证多个报文的顺序不乱序,缓冲区难以管理(因为报文的大小不确定,接收方在接收到报文之前不能预知报文的大小)。

分组交换网络,也称包交换网络。其原理是将数据分成较短的固定长度的数据块,在每个数据块中加上目的地址、源地址等辅助信息组成分组 (包),以存储-转发方式传输。其主要特点是单个分组(它只是整个报文的一部分) 传送到相邻结点,存储后查找转发表,转发到下一个结点。除具备报文交换网络的优点外,分组交换网络还具有自身的优点:缓冲易于管理;包的平均时延更小,网络占用的平均缓冲区更少;更易于标准化;更适合应用。现在的主流网络基本上都可视为分组交换网络。

服务原语

(王道)

服务是指下层为紧邻的上层提供的功能调用,它是垂直的。对等实体在协议的控制下,使得本层能为上一层提供服务,但要实现本层协议还需要使用下一层所提供的服务。

上层使用下层所提供的服务时必须与下层交换一些命令,这些命令在 OSI中称为服务原语。OSI将原语划分为4类:

1)请求(Request)。由服务用户发往服务提供者(上到下,A到B),请求完成某项工作。

2)指示(Imdication)。由服务提供者发往服务用户(下到上,A到B),指示用户做某件事情。

3)响应(Response)。由服务用户发往服务提供者(上到下,B到A),作为对指示的响应。

4)证实(Confirmation)。由服务提供者发往服务用户(下到上,B到A),作为对请求的证实。

这4类原语用于不同的功能,如建立连接、传输数据和断开连接等。有应答服务包括全部4类原语,而无应答服务则只有请求和指示两类原语。

image-20230629155358981

img

(课本,不推荐)

一个服务由一组原语 (primitive)正式说明,用户进程通过这些原语(操作)来访问该服务。原语告诉服务要执行某个动作,或者将对等实体所执行的动作报告给用户。

可用的原语取决于底层所提供的服务。面向连接服务的原语与无连接服务的原语是不同的。

服务原语例:为了实现一个可靠的字节流,可以考虑采用如图 1-17所示的原语。

image-20230628210347371
image-20230628210402368

服务与协议的关系

服务是指某一层向它上一层提供的一组原语(操作)。服务定义了该层准备代表其用户执行哪些操作,但是它并不涉及如何实现这些操作。服务与两层之间的接口有关,低层是服务提供者,而上层是服务用户。

与此不同的是,协议是一组规则,规定了同一层上对等实体之间所交换的数据包或者报文的格式和含义。对等实体利用协议来实现它们的服务定义,它们可以自由地改变协议,只要不改变呈现给它们用户的服务即可。

服务涉及层与层之间的接口,协议涉及不同机器上两个对等实体之间发送的数据包。

image-20230628210625736

参考模型

OSI 参考模型

OSI 模型如图 1-20 所示(省略了物理介质)。该模型基于国际标准化组织(ISO,International Standards Organization)的提案,作为各层协议迈向国际标准化的第一步(Day和 Zimmermann,1983),并且于 1995 年进行了修订(Day,1995)。这个模型称为 ISO 的开放系统互连(OSI,Open Systems Interconnection)参考模型,因为它涉及如何连接开放的系统——即那些为了与其他系统通信而开放的系统。

image-20230628211433448

重点!
  • 物理层 (physical layer):物理层关注在一条通信信道上传输原始比特。这些设计问题主要涉及机械、电子和时序接口,以及物理层之下的物理传输介质等。

  • 数据链路层 (data link layer)

    • 差错控制:数据链路层的主要任务是将一个原始的传输设施转变成一条没有漏检传输错误的线路。数据链路层完成这项任务的做法是将真实的错误掩盖起来,使得网络层看不到。
    • 拆帧和组帧:为此,发送方将输入的数据拆分成数据帧 (data frame),然后顺序发送这些数据帧。 如果服务是可靠的,则接收方必须确认正确收到的每一帧,即给发送方发回一个确认帧 (acknowledgement frame)。(王道:链路建立、拆除、分离;帧定界、帧同步;差错检验等)
    • 流量控制:以便让发送方知道接收方何时可以接收更多的数据。
    • 控制对共享信道的访问:数据链路层的一个特殊子层,即介质访问控制子层。
  • 网络层 (network layer):网络层 (network layer) 的主要功能是控制子网的运行。

    • 路由:一个关键的设计问题是如何将数据包从源端路由到接收方。路由可以建立在静态表的基础上,或者,更常见的情况是路由可以自动更新。最后,路由可以是高度动态的,针对每一个数据包都重新确定路径,以便反映网络当前的负载情况。
    • 处理拥塞:一般要和高层协议结合起来综合处理拥塞才有效,高层协议必须适应它们注入网络中的负载。
    • 网络所提供的服务质量(延迟、传输时间、抖动等)
  • 传输层 (tanspom layer):传输层的基本功能是接收来自上一层的数据,在必要的时候把这些数据分割成较小的单元,然后把这些数据单元传递给网络层,并且确保这些数据单元正确地到达另一端。

    传输层还决定了向会话层,因而是实际的最终网络用户提供哪种类型的服务。例如:完全无错的点-点信道

    • 端到端的应答:传输层是真正的端到端的层,它自始至终将数据从源端携带到接收方。(王道:通过端口号负责主机中两个进程之间的通信。)在其下面的各层,每个协议涉及一台机器与它的直接邻居,而不涉及最终的源机器和目标机器,即源机器和目标机器可能被多个中间路由器隔离了。第 1 层到第 3 层是链式连接的,而第 4层到第 7 层是端到端的。

    • (王道补充)为端到端连接提供可靠的传输服务,接提供流量控制、差错控制、服务质量、数据传输管理(分组排序)等服务

  • 会话层 (session layer):会话层允许不同机器上的用户建立会话。

    会话通常提供各种服务,包括对话控制(dialog control)(记录该由谁来传递数据)、令牌管理(token management)(禁止双方同时执行同一个关键操作),以及同步功能(synchronization)(在一个长传输过程中设置一些断点,以便在系统崩溃之后还能恢复到崩溃前的状态继续运行)

  • 表示层 (presentation layer):表示层关注的是所传递信息的语法和语义。

    表示层管理这些抽象的数据结构,并允许定义和交换更高层的数据结构(比如银行账户记录)。(王道:数据解密、加密、压缩、格式转换等)

  • 应用层 (application layer):应用层包含了用户通常需要的各种各样的协议。

    一个得到广泛使用的应用协议是超文本传输协议(HTTP,HyperText Transfer Protocol),它是万维网(WWW,World Wide Web)的基础。当浏览器需要一个 Web 页面时,它通过 HTTP 将所要页面的名字发送给服务器,然后服务器将页面发回给浏览器。其他一些应用协议可用于文件传输、电子邮件以及网络新闻等。

TCP/IP 参考模型

ARPANET 是由美国国防部(DoD,U.S. Department of Defense)资助的一个研究性网络。它通过租用的电话线,将几百所大学和政府部门的计算机设备连接起来。后来,当卫星和无线网络也要加入时,发现原来的协议在与它们互连时遇到了很大的麻烦,因而需要一种新的参考体系结构。所以,以无缝的方式将多个网络连接起来是从一开始就制定的主要设计目标之一。这个体系结构后来称为 TCP/IP 参考模型(TCP/IP Reference Model)

image-20230628213949637

重点!
  • 链路层 (link layer)(网络接口):模型中的最低层是链路层,该层描述了链路必须完成什么功能才能满足无连接的互联网络层的需求,比如串行线和经典以太网链路。这不是真正意义上的一个层,而是主机与传输线路之间的一个接口。TCP/IP 模型的早期文档很少提到这点。

  • 互联网层 (internet layer):互联网层是将整个网络体系结构贯穿在一起的关键层。它大致对应于 OSI 的网络层,如图 1-21 所示。该层的任务是允许主机将数据包注入到任何网络,并且让这些数据包独立地到达接收方(接收方可能在不同的网络上)。甚至数据包的到达顺序与它们被发送的顺序不同,在这种情况下,如果需要按序递交数据,那么重新排列这些数据包的任务由高层来负责完成。

    • 因特网协议 (IP, Internet Protocol):互联网层定义的官方的数据包格式和协议

    • 因特网控制报文协议 (ICMP, Internet Control sage Protocol):辅助协议

    • 路由:互联网层的任务是将 IP 分组投递到它们该去的地方。很显然,数据包的路由是这里最主要的问题。

    • 拥塞控制:同时该层还要考虑拥塞控制问题(尽管没有证据表明 IP 能有效地避免拥塞)

    • 特点:无连接不可靠

  • 传输层 (transport layer):它的设计目标是允许源主机和目标主机上的对等实体进行对话,犹如 OSI 的传输层一样。这里定义了两个端到端的传输协议。

    • 传输控制协议 (TCP, Transport Control Protocol):可靠的、面向连接的协议,允许从一台机器发出的字节流正确无误地交付到互联网上的另一台机器。它把输入的字节流分割成离散的报文,并把每个报文传递给互联网层。在目标机器,接收 TCP 进程把收到的报文重新装配到输出流中。TCP 还负责处理流量控制,以便确保一个快速的发送方不会因发送太多的报文而淹没掉一个处理能力跟不上的慢速接收方。

    • 用户数据报协议 (UDP, User Datagram Protocol):不可靠的、无连接协议,适用于那些不想要 TCP 的有序性或流量控制功能,而宁可自己提供这些功能的应用程序。UDP 被广泛应用于那些一次性的基于客户机-服务器类型的"请求-应答"査询应用,以及那些及时交付比精确交付更加重要的应用。

  • 应用层 (application layer):应用层简单包含了所需的任何会话和表示功能。它包含了所有的高层协议。

image-20230628214950179

本书使用的模型

image-20230628215125175

物理层规定了如何在不同的介质上以电气(或其他模拟)信号传输比特。

链路层关注的是如何在两台直接相连的计算机之间发送有限长度的消息,并具有指定级别的可靠性。以太网和 802.11(笔者注:WiFi)是链路层协议的例子。(笔者注:数据链路层的任务则是确定帧的开始和结束,并且按照所需的可靠程度把帧从一边发送到另一边。)

网络层主要处理如何把多条链路结合到网络中,以及如何把网络与网络联结成互联网络,以便使我们可以在两个相隔遥远的计算机之间发送数据包。网络层的任务包括找到传递数据包所走的路径(笔者注:路由)。IP 是我们将要学习的网络层主要协议案例。

传输层增强了网络层的传递保证,通常具有更高的可靠性,而且提供了数据交付的抽象,比如满足不同应用需求的可靠字节流。TCP 是传输层协议的一个重要实例。

应用层包含了使用网络的应用程序。

OSI 参考模型与 TCP/IP 参考模型的比较

第一,OSI 模型的最大贡献在于明确区分了服务、接口、协议三个概念。最初,TCP/IP 模型并没有明确区分服务、接口和协议。

第二,OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议,通用性良好。但设计者在协议方面没有太多经验,不知道把哪些功能放到哪一层更好。TCP/IP 模型正好相反,首先出现的是协议,模型实际上是对已有协议的描述,因此不会出现协议不能匹配模型的情况,但该模型不适合于任何其他非TCP/IP 的协议栈。

第三,TCP/IP 模型在设计之初就考虑到了多种异构网的互联问题,并将网际协议 (IP)作为一个单独的重要层次。OSI参考模型最初只考虑到用一种标准的公用数据网将各种不同的系统联。OSI参考模型认识到网际协议 IP 的重要性后,只好在网络层中划分出一个子层来完成类似于TCP/IP模型中的IP的功能。

第四,OSI参考模型在网络层支持无连接和面向连接的通信,但在传输层仅有面向连接的通信。而 TCP/IP 模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式。这个不同点常常作为考查点。

无论是 OSI 参考模型还是 TCP/IP 模型,都不是完美的,对二者的讨论和批评都很多。OSI参考模型的设计者从工作的开始,就试图建立一个全世界的计算机网络都要遵循的统一标准。从技术角度来看,他们希望追求一种完美的理想状态,这也导致基于 OSI参考模型的软件效率极低。OSI 参考模型缺乏市场与商业动力,结构复杂,实现周期长,运行效率低,这是它未能达到预期目标的重要原因。

网络标准化

(考纲已删除此部分)

电信领域有影响力的组织

国际电信联盟(ITU,International Telecommunication Union)

ITU-T:这是电信标准化部门,主要关注电话和数据通信系统。(1993 年以前,ITU-T 称为 CCITT)

ITU-R:无线电通信部门,主要协调全球无线电频率利益集团之间的竞争使用。

ITU-D:发展部门,它的主要任务是促进信息和通信技术的发展,以便缩小有效获取信息技术的国家和访问受到限制的国家之间的“数字鸿沟”。

img

国际标准领域有影响力的组织

国际标准化组织(ISO,International Standards Organization),制定了OSI 标准。

电气和电子工程师协会(IEEE,Institute ofElectrical and Electronics Engineers),它是世界上最大的专业组织。IEEE 有一个标准化组,该标准化组专门开发电气工程和计算领域中的标准。IEEE 的 802 委员会已经标准化了很多类型的局域网。

img

image-20230629104744023

Internet 标准领域有影响力的组织

Internet 活动委员会(IAB,Internet Activities Board),缩写词 IAB 后来改为 Internet 体系结构委员会(Internet ArchitectureBoard)。

在 1989 年夏季,IAB 被重新改组。研究人员被重组到 Internet 研究任务组(IRTF,Internet Research Task Force)中,Internet 研究任务组和Internet 工程任务组(IETF,Internet Engineering Task Force)一起成为 IAB 的附属机构。

img

RFC(RFC,Request For Comments):IAB 每年开几次会议,讨论研究的结果,并且将讨论意见反馈给美国国防部和 NSF,这里的交流过程是通过一系列技术报告进行的,这些报告统称为请求注释RFC。

为了将一个基本思想变成一个标准提案(Proposed Standard),首先要在 RFC 中完整地描述整个思想,并且在Internet 社团中引起足够的兴趣,使得人们愿意考虑它。

为了进一步推进到标准草案(Draft Standard)阶段,必须有一个可正常工作的实现,并且必须经过至少两个独立网站、历时 4个月以上的严格测试。

如果 IAB 确信这个想法是健全的,并且软件可以工作,那么它可以声明该 RFC 成为 Internet 标准(Internet Standard)。有些 Internet 标准已经成为美国国防部标准(MIL-STD),从而成为美国国防部供应商的强制标准。

img

度量单位

image-20230629112244312

计算内存、硬盘、文件和数据库大小的计量单位:kilo 是指 $2^{10}$(1024),而不是 $10^{3}$(1000),因为内存总是 2 的幂次方。因此,1KB 内存包含 1024 字节,而不是 1000 字节。然而,1 kbps 通信线路每秒传输 1000位,而 10 Mbps 的运行速度为 10 000 000 位/秒,这些速度并不是 2 的幂次方

我们将使用符号 KB、MB、GB 和 TB 分别代表 $2^{10}$、$2^{20}$、 $2^{30}$ 和 $2^{40}$ 字节;用符号 kbps、Mbps、Gbps 和 Tbps 分别代表 $10^{3}$、$10^{6}$、$10^{9}$ 和 $10^{12}$ 位/秒。

王道教材补充

计算机网络的性能指标

  1. 带宽(Bandwidth)。本来表示通信线路允许通过的信号频带范围,单位是赫兹(Hz)。而在计算机网络中,带宽表示网络的通信线路所能传送数据的能力,是数字信道所能传送的“最高数据率”的同义语,单位是比特/秒(b/s)。

  2. 时延(Delay)。指数据(一个报文或分组)从网络(或链路)的一端传送到另一端所需要的总时间,它由4部分构成:发送时延、传播时延、处理时延和排队时延。

    • 发送时延。结点将分组的所有比特推向(传输)链路所需的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特发送完毕所需的时间,因此也称传输时延。计算公式为:发送时延 = 分组长度/信道宽度

    • 传播时延。电磁波在信道中传播一定的距离需要花费的时间,即一个比特从链路的端传播到另一端所需的时间。计算公式为:传播时延 = 信道长度/电磁波在信道上的传播速率

    • 处理时延。数据在交换结点为存储转发而进行的一些必要的处理所花费的时间。例如,分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等。

    • 排队时延。分组在进入路由器后要先在输入队列中排队等待处理。路由器确定转发端口后,还要在输出队列中排队等待转发,这就产生了排队时延。

    注意:做题时,排队时延和处理时延一般可忽略不计(除非题目另有说明 )。另外,对于高速链路,提高的仅是数据发送速率而非比特在链路上的传播速率。提高数据的发送速率只是为了减少数据的发送时延

  3. 时延带宽积。指发送端发送的第一个比特即将到达终点时,发送端已经发出了多少个比特,因此又称以比特为单位的链路长度,即时延带宽积 = 传播时延x信道带宽。如图1.4所示,考虑一个代表链路的圆柱形管道,其长度表示链路的传播时延,横截面积表示链路带宽,则时延带宽积表示该管道可以容纳的比特数量。

    image-20230629123337004

  4. 往返时延(Round-Trip Time,RTT)。指从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后立即发送确认),总共经历的时延。在互联网中,往返时延还包括各中间结点的处理时延、排队时延及转发数据时的发送时延。

  5. 吞吐量(Throughput)。指单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络带宽或网络额定速率的限制。

  6. 速率(Speed)。网络中的速率是指连接到计算机网络上的主机在数字信道上传送数据的速率,也称数据率或比特率,单位为 b/s(比特/秒)(或 bit/s,有时也写为 bps)。数据率较高时,可用kb/s (k= 103)、Mb/s (M=10)或Gb/s (G=10表示。在计算机网络中,通常把最高数据率称为带宽。

  7. 信道利用率。指出某一信道有百分之多少的时间是有数据通过的,即信道利用率 = 有数据通过时间/(有+无)数据通过时间

碎碎念

2023年6月21日

这一次几乎是从头到尾捋了大黑书上的内容,相当震撼的体验。也不得不说,这第一章引言内容也十分充实(多)。犹记得我大二下第一次学计网的时候,第一章的课听得我一头雾水,讲了一大堆从来没见过的名词,看书也一样看不懂,直到学完才逐渐把术语都掌握。现在回过头来,发现教材的前后逻辑是非常流畅的,如果作为参考书而言可能并不合适,因为后面的章节会反复提及前面已经出现过的概念,跳读可能会一头雾水。但是连续阅读却能像造房子一样的把一砖一瓦搭建起来。如果像我一样不喜欢王道教材的话,就把王道教材当考纲好了。