前言

这一年开始,将更新计算机网络相关的学习笔记内容。教材是《Computer Networks, 6th》Andrew S. Tanenbaum, David J. Wetherall著,中文版由清华大学出版社出版。

这一章将从基础开始,介绍计算机网络的构成、基本网络协议和参考模型。本章已经增加一下课堂原版笔记内容。


什么是互联网

在探讨互联网是什么之前,我们必须清楚什么是“网络”。网络是一组彼此连接并能够相互发送数据的计算机。计算机网络很像一个社交圈,即一群互相认识、定期交换信息并共同协调活动的人。

互联网是相互连接、规模庞大且连绵不绝的网络集合。由于网络内的计算机相互连接,并且这些网络也都相互连接,因此通过互联网,一台计算机可以与远方网络中的另一台计算机通信。这样,使得世界各地的计算机之间快速交换信息成为可能。

互联网如何运作

互联网运作的基本原理包含两个主要概念:数据包(Packets)和协议(Protocols)。

数据包

在网络中,数据包是较大消息的一小部分。每个数据包都包含数据(data)和和有关该数据的信息。在数据包的最前面,有一个有关数据包内容的信息称为标头(header),以便接收方机器知道如何处理数据包。

当数据通过互联网发送时,它首先分解为较小的数据包,接着转换为位。数据包通过各种网络设备路由到其目的地。当数据包到达目的地时,接收设备会按顺序重组数据包,然后可以使用或显示数据。

协议

在不同硬件、运行着不同软件的计算机之间通过协议(protocol)连接。在网络中,协议是执行某些操作和格式化数据的标准化方法,以便两个或更多设备能够相互通信并相互理解。

所有连入互联网的计算机和其他设备都可以解释和理解这些协议,所以无论连接的是什么,互联网都可以正常工作。

传输技术

目前普遍使用的传输技术有两种,分别是广播式链路和点到点链路。

点到点(point-to-point)链路将一对单独的机器连接起来。在一个由点到点链路组成的
网络中,为了从源端到达接收方,短消息必须首先访问一个或多个中间机器,这种短消息
在某些情况下称为数据包或包(packet)。

通常在网络中有可能存在多条不同长度的路由,因此,找到一条好的路由对点-点网络非常重要。点-点传输只有一个发送方和一个接收方,有时候也称为单播(unicasting)。

相反,在一个广播(boradcasting)网络上,通信信道被网络上的所有机器所共享;任何一台机器发出的数据包能被所有其他任何机器收到。无线网络是广播链路的一个常见例子,一个覆盖区域内的通信由所有该区域内的机器共享,而该区域的划分取决于无线信道和传输机器。

有些广播系统还支持给一组机器发送数据包的模式,这种传输模式称为组播(multicasting)。

数据网络

计算机网络(computer network)是通信网络的一种,被称为数据网络(data networks)。而数据网络是一种使用数字传输的通信网络。通常来说,数据是离散的信号,数据被封装成称为数据报(Datagram)的信息,并通过一些中间网络设备从源发送到目的地。例如以太网。

相反的,语音网络使用模拟信号传输,它是连续的信号。通常来说,语音流(voice stream)通过预先建立的连接(称为电路circuit)从源头转发到目的地。例如电话网络。


从局部到全球的网络技术

个人区域网 (Personal Area Network)

个人区域网 (PAN, Personal Area Network) 允许设备围绕着一个人进行通信。简单来说,就是非常有限距离的连接,其中最著名的例子就是蓝牙耳机和智能手机之间的连接。

个人区域网连接可以是有线或无线的。有线连接方式包括 USB 和 FireWire;无线连接方式包括蓝牙(Bluetooth)、WiFi、IrDA 和 Zigbee。

有线连接长度取决于连接线,而无线连接——WPAN(Wireless Personal Area Network) 的范围通常非常小,例如蓝牙等短距离无线协议在大于 5-10 米的距离上效率不高。


局域网 (Local Area Network)

局域网 (LAN,Local Area Network),LAN 是包含在较小地理区域内的网络,通常位于同一建筑物内。家庭 WiFi 网络和小型企业网络是常见的 LAN 示例。

局域网络被广泛用来连接个人计算机和消费类电子设备,使它们能够共享资源(比如打印机)和交换信息。

无线的LAN如今已经无处不在,在这些系统中,每台计算机都有一个无线调制解调器和一个天线,用来与其他计算机通信。接下来我们就来了解局域网的构成。

在大多数情况下,LAN中的每台计算机会与一个接入点(AP, Access Point)、无线路由器(wireless router)或者基站(base station)的设备进行通信。它主要负责中继无线计算机之间的数据包,还负责中继无线计算机和Internet 之间的数据包。

接下来我们逐个来理解它们的概念。

接入点(AP)

无线接入点(AP 或 WAP)是允许 Wi-Fi 设备连接到有线网络的网络设备。它主要是提供无线工作站对有线局域网和从有线局域网对无线工作站的访问,在访问接入点覆盖范围内的无线工作站可以通过它进行相互通信。

简单来说,就是提供无线网络的设备,它有线连接在局域网内。

路由

在理解路由器之前,先了解一下什么是路由。网络路由(routing)是选择一个或多个网络上的路径的过程。在诸如互联网等数据包交换网络中,路由选择互联网协议 (IP) 数据包从其起点到目的地的路径。这些互联网路由决定由称为路由器的专用网络硬件做出。

简单来说,路由是寻找路径的过程。网络中两个计算机之间有很多个网络相连,它们的路径有很多种,路由是找到这些路径的过程,如图:

要从计算机 A 到达计算机 B 的数据包,它应该通过网络 1、3 和 5 还是通过网络 2 和 4?数据包通过网络 2 和 4 的路径会更短,但是网络 1、3 和 5 在转发数据包时可能比 2 和 4 更快。这些都是网络路由器(Router)不断做出的选择类型。

在路由中,任播(anycast)是一种网络寻址和路由的策略,使得数据可以根据路由拓朴来决定送到“最近”或“最好”的目的地。

路由器

路由器(Router)是一种网络硬件,负责将数据包转发到目的地。路由器连接到两个或多个 IP 网络或子网,并根据需要在它们之间传递数据包。

为了有效地引导数据包,路由器使用一个内部路由表——一个通往不同网络目的地的路径列表。路由器读取数据包的标头以确定其去向,然后查阅路由表以找出通往该目的地的最有效路径。然后,它将数据包转发到该路径中的下一个网络。

现在的无线路由器是一个AP、路由器和交换机的集合体,支持有线无线组成同一子网并具有路由功能。它组成的网络称为无线局域网(WLAN)

交换机

网络交换机(switch)是连接网络内的设备,并向或从这些设备转发数据包。与路由器不同,交换机仅将数据发送到它打算发送的单个设备(可以是另一台交换机、路由器或用户的计算机),而不是发送到多个设备的网络。如图:

举个例子,交换机就像是接口拓展坞一样,将数据转发都其他设备去。

基站

基站(Base Station),是公用移动通信基站,是移动设备接入互联网的接口设备,也是无线电台站的一种形式,是指在一定的无线电覆盖区中,通过移动通信交换中心,与移动电话终端之间进行信息传递的无线电收发信电台。


以太网

国际上为LAN规定了一些标准,其中有线连接里IEEE 802.3是迄今为止最常见的一种有线局域网,我们称为以太网(Ethernet)。

每台计算机按照以太网协议规定的方式运行,通过一条点到点链路连接到交换机,交换机根据每个数据包中的地址来确定这个数据包要发送给哪台计算机。如图:

这个会在之后的章节中仔细说明。


WI-FI

无线局域网的一个标准称为IEEE 802.11,俗称为Wi-Fi,已经被非常广泛地使用于局域网中。Wi-Fi 是一种无线网络技术,允许计算机(笔记本电脑和台式机)、移动设备(智能手机和可穿戴设备)以及其他设备(打印机和摄像机)等设备与互联网连接。它允许这些设备以及更多设备相互交换信息,从而创建一个网络。


城域网(Metropolitan Area Network)

城域网(MAN,Metropolitan Area Network)的范围可覆盖一个城市。最有名的城域网
例子是许多城市都有的有线电视网。这种系统由早期的社区天线系统发展而来,主要用在
那些从空中接收电视信号条件较差的地区。在这些早期系统中,常常把一个很大的天线放
在附近的山上,然后电视信号通过该天线转发到订户的家里。

电视信号和Internet 流量都先被送到一个集中式线缆前端(cable headend),然后再分发到居民的家中。如图:


广域网(Wide Area Network)

广域网(WAN, Wide Area Network)是一种大型计算机网络,用于远距离连接不同的计算机组。大型企业通常使用 WAN 来连接其办公网络。

LAN 通常存在于封闭区域中,常常共享互联网连接的单个中心点。WAN 旨在提供远距离的网络连接。它们通常由几个互相连接的 LAN 组成。

常见的广域网有:专线、VPN 或 IP 隧道。

专线

专线(leased line)是从大型网络提供商(例如 ISP,Internet Service Provider)租用的直连网络连接。对于大多数组织而言,建立自己的物理网络基础设施(包括跨越数百或数千英里的电缆、路由器和互联网交换点)几乎是不可能完成的任务。因此,他们改为从已经拥有这种基础设施的公司租用专门的直连连接。

隧道

如果公司不想付费使用专线,他们可以使用隧道(tunneling)来连接其 LAN。在网络中,隧道是一种将数据包封装在其他数据包中的方法,以便它们可以到达原本不可及的地方。这可以比作将一个信封放在另一个信封里邮寄,两个信封分别有一个不同的地址,这样内信封就能从外信封的目的地地址邮寄出去。

虚拟专用网络

某些网络隧道会经过加密,以保护数据包的内容,以免受到任何可能在途中拦截它们的人的攻击。加密的隧道称为虚拟专用网络(VPN,Virtual Private Network)。


互联网络

世界上存在着许多许多的网络,它们常常使用不同的硬件和软件。连接到一个网络中的人经常要与连接到另一个网络中的人通信。为了做到这一点,那些相互之间不同而且通常不兼容的网络必须能够连接起来。一组相互连接的网络称为互联网络(internetwork)或互联网(internet)。

全球范围的因特网(Internet)是通常用首字母大写来表示的特殊互联网络。


网络拓扑

网络连接将两台设备在一起,可以分为物理连接(Physical connection)和逻辑连接(Logical connection)两部分。

物理连接包括设备(devices)/主机(hosts)、网络接口(interface)/网卡/适配器(adapters)、媒介链路(media links)等物理层面的硬件设备。

逻辑连接通过网络协议建立,在软件和逻辑上连接网络实体。

计算机连接的方式叫做“网络拓扑结构”(Network Topology)。网络拓扑(Network Topology)是指用传输介质(例如双绞线、光纤等)互连各种设备(例如计算机终端、路由器、交换机等)所呈现的结构化布局。

网络拓扑中,有如下概念:

  • 节点:一个“节点”其实就是一个网络端口。
  • 结点:一个“结点”是指一台网络设备。
  • 链路:“链路”是两个节点间的线路。
  • 通路:通路”从发出信息的节点到接收信息的节点之间的一串节点和链路的组合。

按照网络的拓扑形态来划分,网络可分为星型网络(Star)、总线型网络(Bus)、环形网络(Ring)、树形网络(Hierarchical)和网状网络(Mesh)等。

在局域网中,常见的三种物理层网络拓扑结构有:

拓扑结构 物理拓扑 逻辑拓扑
以太网 星型或树型 基于物理拓扑的总线型
Token Ring 星型 基于物理拓扑的环型
FDDI 双环形 基于物理拓扑的环型


分层结构

网络架构(Network architecture)是用于网络通信的一系列协议服务的名称。

  • (layer)是按照不同功能(function)将网络架构划分成层级结构。每一层都有特定的功能。

  • 协议(Protocols) 是每一层用于执行具体功能的规则集。协议描述并规定了某个层的操作方式。

  • 服务(Services) 是低层为高层提供的功能。每一层都利用下一层提供的服务来实现自身的功能。

它们的关系如图:

协议包含了报文(message)的格式(format)和主机之间报文交换的方式,是实现网络通信的规则。协议族(Protocol suites)是按照需要组合在一起的协议集合,用来涵盖网络通信的各种功能。每个协议只负责一个特定的功能,不同协议之间相互协作来实现全面的网络通信。

每一层上可以实现多个不同的协议。协议栈(Protocol stack)就是某个系统所采用的协议集合,每个层采用一个或多个协议。例如,TCP/IP协议栈由多种协议组成,如IP协议工作在网络层,TCP和UDP协议工作在传输层。

在层与层之间,低层为上层提供服务。具体来说,第k层扮演服务提供者(service provider)的角色,为第k+1层即服务用户(service user)提供服务。

服务接入点(Service Access Points, SAP)存在于层与层之间,是服务用户访问服务提供者提供的服务的接口。第k层的SAP就是第k+1层用于访问第k层服务的入口。每个SAP都有一个唯一的地址标识。

当两台主机上的同一层进行通信时,它们必须遵守某些预定的规则和约定,这些规则和约定统称为该层的协议。如果任意一方违反了协议,将导致通信出现问题。

不同机器上构成相应层次的实体称为对等体(peer)。这些对等体可能是软件过程、硬件设备,或者甚至是人类。换句话说,正是这些对等体为了实现彼此沟通才使用协议来进行通信。

只有对等的层可以理解其对等数据,因为只有相同的协议之间才可以沟通。例如,我们举一个生活中的例子来解释多层通信:

两个哲学家之间的交流,只有他们之间才能明白,而翻译家得到的信息也只有翻译家之间才能明白。秘书只负责发送与接收,他们的过程也只有他们自己理解。

在对应层的对等实体之间传递信息的基本单位叫做协议数据单元(Protocol Data Units, PDU)。PDU 由标头(Header)、载荷(Payload)和尾部校验信息(Trailer)组成,其中Trailer可选。

  • Header用于识别对等实体之间所使用的协议类型,以及对PDU的数据进行控制。标头通常包含地址信息、序列号等控制信息。
  • Payload是用户数据,即上层 PDU。
  • Trailer用于对PDU数据的校验。


参考模型

分层的协议设计是网络设计中的关键抽象之一,其中普遍流行的模型有:OSI 参考模型TCP/IP 参考模型

OSI 参考模型

OSI模型是基于国际标准化组织(ISO)的提案,作为实现网络协议国际标准化的第一步。它从下到上包含以下7层:

模型中,越底层的功能越简单。模型自底向上的功能:

  1. 物理层(Physical Layer):通过有线或无线方式传输比特流的功能。
  2. 数据链路层(Data Link Layer):实现介质访问(控制数据传输顺序)和确保节点间可靠传输的功能。(主要关注单个数据链路上的可靠传输)
  3. 网络层(Network Layer):决定数据包在多个节点间的最佳传输路径。
  4. 传输层(Transport Layer):在源和目的主机间建立端到端的可靠通信。(关注整体可靠传输,解决网络拥塞和段损坏问题)
  5. 会话层(Session Layer):控制主机间的会话连接(连接的建立与结束)。
  6. 表示层(Presentation Layer):处理数据的表示格式,对数据进行展示、翻译和加密。
  7. 应用层(Application Layer):用于网络应用进程之间的交互,提供各种网络服务。

例如通过这个例子,我们可以将OSI模型的各个层次与从办公室搬运书籍到图书馆的过程相对应,帮助理解和解释各层的功能和作用。

  1. 搬运图书至图书馆,工作人员使用手推车将书籍从办公室搬运到图书馆(物理层)。
  2. 在书籍搬运过程中,工作人员需要按照特定的顺序将书籍放置在手推车上,并确保它们不会掉落或丢失(数据链路层)。
  3. 工作人员选择的最佳路径,以确保书籍从办公室到图书馆的传输是高效和快速的(网络层)。
  4. 工作人员确保书籍在搬运过程中不受损坏或丢失。他们可以使用适当的包装材料和保护措施,以确保书籍安全地到达目的地(传输层)。
  5. 工作人员与办公室工作人员之间的沟通和协调,以确保书籍的准确搬运和交接(会话层)。
  6. 工作人员使用标签或编号对书籍进行标识和分类,以便在图书馆中更好地展示和组织书籍(展示层)。
  7. 办公室和图书馆之间的交互,包括书籍搬运的请求和确认、交接等服务的过程是应用层。

封装

在OSI模型中,封装(Encapsulation)是指数据在各层向下传输过程中,被逐层添加该层的头部和尾部信息,形成带有headers和trailers的PDU。而反封装(De-encapsulation)则是数据在接收端向上层传递过程中,逐层移除该层添加的headers和trailers的过程。如图:

OSI模型中数据封装的五个主要步骤:

  1. 在应用层、表示层和会话层,数据(Data)被创建和处理。
  2. 在传输层,数据被分割为数据段(Segments),添加传输层的头部信息,用于在源和目的端系统之间端到端传输。
  3. 在网络层,数据段被进一步封装为数据包(Packets),添加网络层的头部信息如源和目的IP地址等。
  4. 在数据链路层,数据包被封装为(Frames),添加数据链路层的头部信息如源和目的MAC地址等。
  5. 在物理层,数据帧被转换为比特(Bits),以在物理介质上传输。

当数据在不同网络之间传输时,源主机与目的主机不一定直接连接。数据会经过多个不同的主机或网络进行传输,才能到达目的主机。在这种情况下,数据在到达接收主机之前的各个网络之间传递时,只涉及OSI模型底层的物理层、数据链路层和网络层的封装与反封装如图:

当然,不一定经过的设备均有3层,常见的网络设备中,集线器(Hub)只有第一层,交换机(Switch)只有第一第二层,路由器(Router)则有前三层。

在网络传输的过程中,被反封装的层可以被设备改变信息。例如:

每两个发送方与接收方的协议必须一样,但接收方可以改变这个协议并发给下个接收方。


TCP/IP 参考模型

TCP/IP 参考模型(TCP/IP Reference Model),以其中两个最主要的协议——TCP协议和IP协议命名。如图:

接下来我们逐层自顶而下来讨论。

应用层

应用层(application layer)是网络应用程序及它们的应用层协议存留的地方。它包含了所有的高层协议,例如虚拟终端协议(TELNET)、文件传输协议(FTP)、电子邮件协议(SMTP)、超文本传输协议(HTTP)。其中还有一个非常重要的协议——DNS协议(DNS,Domain Name
System),它可以将主机名字映射到它们网络地址的域名系统。

我们把这种位于应用层的信息分组称为报文(message)。

传输层

因特网的运输层(transport layer)在应用程序端点之间传送应用层报文。在因特网中,有两种运输协议,即TCP(传输控制协议,Transport Control Protocol)和UDP(用户数据报协议,User Datagram Protocol),利用其中的任一个都能运输应用层报文。

TCP是一个可靠的、面向连接的协议,包括了应用层报文向目的地的确保传递和流量控制。TCP也将长报文划分为短报文,并提供拥塞控制机制,因此当网络 拥塞时,源抑制其传输速率。

UDP协议向它的应用程序提供无连接服务。这是一种不提供不必要服务的服务,没有可靠性,没有流量控制,也没有拥塞控制。适用于那些不想要TCP 的有序性或流量控制功能。

我们把运输层的分组称为报文段(segment)。

网络层

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

互联网层定义了官方的数据包格式和协议,该协议称为因特网协议IP(IP,Internet Protocol),与之相伴的还有一个辅助协议,称为因特网控制报文协议(ICMP,Internet Control Message Protocol)。互联网层的任务是将IP 分组投递到它们该去的地方。在网络层中,数据包的路由是最主要的问题

链路层

模型中的最低层是链路层(link layer),该层描述了链路必须完成什么功能才能满足无连接的互联网络层的需求,比如串行线和经典以太网链路。这不是真正意义上的一个层,而是主机与传输线路之间的一个接口。又称网络接口层。

因特网的网络层通过源和目的地之间的一系列路由器路由数据报。为了将分组从一个 节点(主机或路由器)移动到路径上的下一个节点,网络层必须依靠该链路层的服务。网络层将数据报下传给链路层,链路层沿着路径将数据报传递给下一个节点。

我们把链路层分组称为(frame)。

物理层

虽然链路层的任务是将整个帧从一个网络元素移动到邻近的网络元素,而物理层(physical layer)的任务是将该帧中的一个个比特从一个节点移动到下一个节点。在这层中的协议仍然是链路相关 的,并且进一步与该链路(例如,双绞铜线、单模光纤)的实际传输媒体相关。物理层常用的协议有以太网(Ethernet)。


两种模型的异同

TCP/IP模型和OSI模型的相似之处与不同之处包括:

相似处:

  • 两者都采用了分层的网络架构。
  • 都有传输层和网络层用于进行端到端的可靠传输和网络互联。
  • 都采用数据包交换的方式,分组可以采取不同的路径到达同一目的地。

不同处:

  • TCP/IP模型层次更少,结构更简单。OSI模型的层次更多,结构更复杂。
  • OSI的应用层包含更丰富的服务和功能,TCP/IP将表示层和会话层合并到应用层。
  • TCP/IP将OSI的数据链路层和物理层合并到网络接口层。
  • TCP/IP模型是根据其协议规范产生,而OSI模型更多作为网络设计的指导框架。

网络协议

下面介绍一些基础的网络协议。具体请见:https://hoyue.fun/network_ipbasic.html

IP协议

IP(Internet Protocol网络协议)是Internet上最基本的网络层协议。IP协议负责将数据从源主机发送到目标主机。IP协议定义了IP地址和IP数据包的格式。相当于服务器的门牌号

IPV4

IPV4是IP协议的第四个版本,也是目前最常用的版本。它使用32位地址,通常表示为四个用点分隔的十进制数,每个数的取值范围是0到255。IPV4地址的数量有限,只能表示大约42亿个地址。由于互联网的快速发展,这些地址已经越来越不够用了。

IPV6

为了解决IP地址不足的问题,IPV6协议被开发出来。IPV6使用128位地址,可以表示更多的地址。IPV6地址的表示方法与IPV4不同,通常表示为8组用冒号分隔的十六进制数。IPV6地址的数量非常庞大,几乎可以为每一个物体都分配一个唯一的地址。

HTTP

HTTP是超文本传输协议,用于在Web浏览器和Web服务器之间传输HTML页面和其他文件。HTTP使用TCP作为传输协议,基于请求-响应模型工作。HTTP请求由浏览器发送,响应由Web服务器发送。

SMTP

SMTP是简单邮件传输协议,用于在电子邮件客户端和邮件服务器之间传输电子邮件。SMTP使用TCP作为传输协议,基于请求-响应模型工作。SMTP请求由邮件客户端发送,响应由邮件服务器发送。

FTP

FTP是文件传输协议,用于在计算机之间传输文件。FTP使用TCP作为传输协议,基于请求-响应模型工作。FTP请求由FTP客户端发送,响应由FTP服务器发送。


网络性能

带宽和吞吐量

带宽(Bandwidth)是在给定时间内通过网络连接能够传输的最大信息量

吞吐量(Throughput)指的是在一定时间内经过网络连接实际传输的数据量,它受到网络用户数量、网络设备、数据类型、用户计算机和服务器等各种因素的影响。

在理论上:Throughput ≤ Bandwidth

根据信号类型不同,带宽可以分为模拟带宽和数字带宽:

  • 模拟带宽是针对模拟信号的带宽,其基本单位是赫兹(Hz),表示每秒周期数。
  • 数字带宽是针对数字信号的带宽,其基本单位是每秒比特数(bps)。

注意,其中1Kbps = 1000bps ≠ 1024bps

波特

传输每个字符所需的时间取决于编码方式和信号传输速度。波特(baud)表示每秒信号状态变化次数,是衡量符号传输速率的单位。但是波特线路不一定每秒传输多个比特,因为每个信号可能传输多个比特。

比特率(bit rate)与波特的关系为:
bit rate = baud × log2 L
这里的L表示每个信号包含的伏特等级数。

综上所述,波特表示符号变化速率,比特率表示实际比特传输速率。二者通过编码方式关联。

例如有一个信号有8种可能性(0~7被使用),计算得比特率是波特的3倍(log28 = 3)。

网络延迟

延迟(Latency)是指数据包从源站传输到网络目的地所需的时间。传输延迟可以定义为从源站发出数据包的第一个比特开始,到整个数据包到达目的地所需的时间。

  • 传播时延(Propagation delay)是信号在传输介质上传播所需时间的测量。
  • 传输时延(Transmission delay)是将一个数据包的所有比特推送到传输链路上所需的时间。
  • 传送时延(Transfer delay)是指数据包从源主机到目的主机之间从发送到接收的延迟总和。Transfer delay = Propagation delay + Transmission delay

e.g.1,S表示源主机,D表示目的主机。数据帧大小为1500 bytes,接口处传输速度为100 Mbps,铜线传输速度为2/3光速。

Propagation delay = Length of Cable / Speed of Signal = 100 m / ((2/3)*103) m/s

Transmission delay = Size of Message / Speed of Transmission = (1500 * 8) bits / (100*106) bps

Transfer delay = Propagation delay + Transmission delay

在计算Transfer delay时,TD不需要计算两次,因为在传输过程中被PD重复计算了。

如果经过了其他设备的转发,如图e.g.2:

Size of Message: 5000 bits, 每条线的传播延迟PD = 10 µs,每个接口的速度为1 Gpbs,求最后的Transfer delay。

这个例子和之前第一个例子的区别是经过了一个交换机的转发,设交换机处理消息的时延为0,则:

对于一条链路上,存在一个PD和一个TD:

Propagation delay = 10 µs

Transmission delay = Size of Message / Speed of Transmission = 5000 / (1*109) bps = 5 µs

数据报经过交换机后,还有一条链路,它和第一条链路一样。

Transfer delay = 2 * (PD + TD) = 30 µs

我们可以很容易得出一条规律:经过一条链路所消耗的时延为PD+TD,经过n条相同链路的时延为n*(PD+TD)

接下来加大难度,在多条链路多次发包的情况,e.g.3:

如果在如图的网络中,发送10个数据报,每个大小为500 bits,求Transfer delay。

与之前一样的,根据我们得出的规律可以得出一个数据报需要的时延:

Propagation delay = 10 µs

Transmission delay = 1/10 TD = 0.5 µs

Transfer delay by single message = 4*(PD + 1/10 TD) = 42 µs

但是现在有10个数据报,还有9个的时延没有计算。因为它们发送的时候是一个接着一个连着发送的,故存在时间重叠。当接收方接收到数据报1的时候,产生的时延为PD + 1/10 TD,而同时,数据报2即将接收完毕,接下来接收它只需要付出一个它的TD,即1/10 TD即可。如图:

还剩余9个数据报,故还会产生9 * 1/10 TD = 4.5 µs

故总体:

Transfer delay = 42 µs + 4.5 µs = 46.5 µs

但如果在链路中出现了接口速率不一样的情况呢,如e.g.4:

在Switch2和Switch3之间的速率变为1Mbps,其他的速率还是1Gbps。同样是发送10个500 bits的数据报。 

同样是先计算一个数据报的情况:

在Switch2之前存在两条链路,它们的时延为2 * (1/10 TD + PD)

到了Switch2和Switch3之间,速率降低,传输的时延增大1000倍(G/M = 1k),在此时时延为:(2+1000) * 1/10 TD + 3 PD。

在最后的链路又是原来的速度,故第一个数据报的时延为:(3+1000) * 1/10 TD + 4 PD

此时其他数据报也因为需要等待前一个数据报接收而产生时延,它们的时延为9 * 1000 * 1/10 TD ,单个解析如图:

而因为接收之间产生了时延,而通过交换机没有时延。接收完前一个数据报的同时发送给了目的主机,而下一个数据报还在接收,产生了一个空隙的时延。因为我们已经计算过数据报其他的传输延迟,故此时空隙的时延一共为:9 * (1000 - 1) * 1/10 TD

故加起来后得:Transfer delay = (3+1000) * 1/10 TD + 4 PD + 9 * 1000 * 1/10 TD + 9 * (1000 - 1) * 1/10 TD

通过这个例子,我们也能了解到,网络中的速度与延迟与最慢的链路有关


后记

这一章介绍了计算机网络的基本概念,包括网络的构成、分类、协议和参考模型。我们了解了互联网是由许多不同的网络相互连接而成的,以及互联网协议(IP)是如何将数据包从源主机发送到目标主机的。我们还学习了一些常用的应用层协议,如HTTP、SMTP和FTP,它们分别用于在Web浏览器和Web服务器、电子邮件客户端和邮件服务器、以及计算机之间传输数据。我们还探讨了分层的协议设计原则,以及两个著名的参考模型:OSI参考模型和TCP/IP参考模型。这些内容为我们进一步学习计算机网络的原理和技术打下了基础。

References:

这里的一切都有始有终,却能容纳所有的不期而遇和久别重逢。
最后更新于 2023-09-12