Data Communication Computer Network 简明教程

Computer Network Quick Guide

Data Communication Overview

将计算机与打印机等计算机化外围设备互连的系统称为计算机网络。计算机间的这种互连促进了它们之间的信息共享。计算机可以通过有线或无线媒体互相连接。

Classification of Computer Networks

计算机网络基于各种因素进行分类,包括:

  1. Geographical span

  2. Inter-connectivity

  3. Administration

  4. Architecture

Geographical Span

从地理位置来看,网络可以归入以下类别之一:

  1. 它可以跨越你的桌子,在支持蓝牙的设备之间进行连接,范围不超过几米。

  2. 它可以跨越一整栋建筑,包括连接所有楼层的中间设备。

  3. 它可以跨越一个城市。

  4. 它可以跨越多个城市或省份。

  5. 它可以是一个覆盖全球的网络。

Inter-Connectivity

网络的组件可以通过不同的方式相互连接。连通性是指逻辑上、物理上或两者兼而有之的连接。

  1. 每个设备可以连接到网络上的任何其他设备,从而形成网状网络。

  2. 所有设备都可以连接到一个媒体,但在地理上是分离的,形成了总线结构。

  3. 每个设备只连接到其左右的设备,形成线形结构。

  4. 所有设备与单个设备连接在一起,形成类似星星的结构。

  5. 所有设备通过所有以前的方式任意连接,形成混合结构。

Administration

从管理员的角度来看,网络可以是属于单个自治系统的私有网络,并且无法在其物理或逻辑域外部进行访问。网络可以是所有人都可以访问的公共网络。

Network Architecture

  1. 可以有一个或多个系统充当服务器。其他客户端请求服务器提供服务。服务器代表客户端接收和处理请求。

  2. 两个系统可以点对点连接,或者背靠背连接。它们都处于同一级别,称为对等方。

  3. 可能会有混合网络,其中涉及上述两种类型的网络架构。

Network Applications

计算机系统和外围设备连接起来形成网络。它们提供了许多优点:

  1. 共享资源,例如打印机和存储设备

  2. 通过电子邮件和 FTP 交换信息

  3. 通过 Web 或 Internet 共享信息

  4. 使用动态网页与其他用户进行交互

  5. IP phones

  6. Video conferences

  7. Parallel computing

  8. Instant messaging

Computer Network Types

通常, 网络根据它们的地理跨度进行区分。网络可以小到你的手机与其蓝牙耳机之间的距离, 也可以大到互联网本身, 覆盖整个地理世界。

Personal Area Network

个人局域网络(PAN)是最小的网络, 对用户来说非常私密。这可能包括启用蓝牙的设备或启用红外的设备。PAN 的连接范围高达 10 米。PAN 可能包括无线电脑键盘和鼠标, 蓝牙耳机, 无线打印机和电视遥控器。

Bluetooth

例如, 小网是启用蓝牙的个人局域网络, 可能最多包含 8 个设备以主从方式连接在一起。

Local Area Network

在建筑物内跨越并由单个管理系统操作的计算机网络通常称为局域网(LAN)。通常, LAN 涵盖了组织的办公室、学校、大学。连接到 LAN 中的系统数量可以从至少两个到多达 1600 万个。

LAN 提供了一种在终端用户之间共享资源的有用方法。诸如打印机、文件服务器、扫描仪和互联网之类的资源可以在计算机之间轻松共享。

LAN

LAN 由廉价的网络和路由设备组成。它可能包含服务文件存储和本地共享的其他应用程序的本地服务器。它主要在私有 IP 地址上运行, 并且不涉及繁重的路由。LAN 在其自己的本地域内工作, 由中心控制。

LAN 使用以太网或令牌环技术。以太网是最广泛采用的 LAN 技术并使用星形拓扑, 而令牌环很少见。

LAN 可以是以太网, 无线或同时采用这两种形式。

Metropolitan Area Network

城域网络(MAN)通常像有线电视网络一样扩展到整个城市。它可以是以太网、令牌环、ATM 或光纤分布式数据接口(FDDI)的形式。

Metro Ethernet 是一项由 ISP 提供的服务。此服务使其用户能够扩展其局域网。例如, MAN 可以帮助组织连接城市中所有办事处。

MAN

MAN 的骨干是高容量、高速光纤。MAN 在局域网和广域网之间工作。MAN 提供了 LAN 到 WAN 或互联网的上行链路。

Wide Area Network

顾名思义, 广域网(WAN)覆盖了一个可能跨越多个省甚至一个整个国家的广阔区域。一般来说, 电信网络是广域网。这些网络提供与 MAN 和 LAN 的连接。由于它们配备了超高速骨干网, WAN 使用非常昂贵的网络设备。

WAN

WAN 可以使用诸如异步传输模式(ATM)、帧中继和同步光网络(SONET)等先进技术。WAN 可能由多个管理人员管理。

Internetwork

网络的网络称为互联网络或简单地称为互联网。它是这个星球上存在的最大的网络。互联网广泛连接所有 WAN, 并可以连接到 LAN 和家庭网络。互联网使用 TCP/IP 协议套件, 并使用 IP 作为其寻址协议。现如今, 互联网广泛使用 IPv4 实现。由于地址空间短缺, 它正逐渐从 IPv4 迁移到 IPv6。

互联网使用户可以共享和访问全球范围内的海量信息。它使用万维网、FTP、电子邮件服务、音频和视频流等。在巨大的层面上,互联网使用客户端-服务端模型。

互联网采用速度极高的光纤骨干网。为了连接各种洲,将光纤铺设在海中,我们称之为海底通信电缆。

互联网广泛部署在使用 HTML 链接页面的万维网服务上,并可以通过客户端软件(即 Web 浏览器)访问。当用户使用位于世界任何地方某个 Web 服务器上的 Web 浏览器请求页面时,Web 服务器将使用适当的 HTML 页面进行响应。通信延迟非常低。

互联网提供了多重用途,涉足我们生活的各个方面。其中包括:

  1. Web sites

  2. E-mail

  3. Instant Messaging

  4. Blogging

  5. Social Media

  6. Marketing

  7. Networking

  8. Resource Sharing

  9. Audio and Video Streaming

Network LAN Technologies

让我们简要了解一下各种局域网 (LAN) 技术:

Ethernet

以太网是一种广泛部署的局域网技术,该技术由鲍勃·梅特卡夫和 D.R. 博格斯于 1970 年发明。它于 1980 年在 IEEE 802.3 中标准化。

以太网共享介质。使用共享介质的网络数据很容易发生冲突。以太网使用载波侦听多路访问/冲突检测 (CSMA/CD) 技术来检测冲突。当在以太网中发生冲突时,所有主机都会回滚,等待一段时间,然后重新传输数据。

以太网连接器是具有 48 位 MAC 地址的网络接口卡。这有助于其他以太网设备识别以太网中的远程设备并与其通信。

传统的以太网使用 10BASE-T 规范。数字 10 表示 10Mbps 的速度,BASE 表示基带,而 T 表示粗以太网。10BASE-T 以太网提供高达 10Mbps 的传输速度,并使用同轴电缆或带有 RJ-45 连接器的 Cat-5 双绞线同轴电缆。以太网采用星形拓扑结构,线段长度最长为 100 米。所有设备都以星形方式连接到集线器/交换机。

Fast-Ethernet

为了满足快速发展的软件和硬件技术的需要,以太网扩展为快速以太网。它可以在 UTP、光纤和无线环境下运行。它可以提供高达 100 Mbps 的速度。此标准在 IEEE 803.2 中使用 Cat-5 双绞线电缆命名为 100BASE-T。对于有线介质,它使用 CSMA/CD 技术在以太网主机之间共享,而对于无线以太网局域网,它使用 CSMA/CA(CA 表示冲突避免)技术。

光纤上的快速以太网在 100BASE-FX 标准下定义,该标准提供高达 100 Mbps 的光纤速度。光纤上的以太网在半双工模式下可以扩展到 100 米,在多模光纤上的全双工模式下可以达到 2000 米。

Giga-Ethernet

快速以太网在 1995 年推出后,仅享受了 3 年的高速状态,直到千兆以太网的推出。千兆以太网提供高达 1000 兆位/秒的速度。IEEE802.3ab 使用 Cat-5、Cat-5e 和 Cat-6 电缆对千兆以太网进行了标准化。IEEE802.3ah 定义了光纤上的千兆以太网。

Virtual LAN

局域网使用以太网,而以太网又使用共享介质。以太网中的共享介质会创建一个单一广播域和一个单一冲突域。将交换机引入以太网已经消除了单一冲突域问题,并且连接到交换机的每个设备都在其单独的冲突域中工作。但即使交换机也不能将网络划分为单独的广播域。

虚拟局域网 (VLAN) 是将单个广播域划分为多个广播域的解决方案。一个 VLAN 中的主机无法与另一个 VLAN 中的主机通信。默认情况下,所有主机都被置于同一 VLAN 中。

VLAN

在此图中,不同的 VLAN 以不同的颜色代码表示。同一 VLAN 中的主机即使连接到同一交换机上也无法看到或与不同 VLAN 中的其他主机通信。VLAN 是一项第 2 层技术,与以太网密切配合。要路由两个不同 VLAN 之间的包,需要使用第 3 层设备(如路由器)。

Computer Network Toplogies

网络拓扑是连接计算机系统或网络设备的排列方式。拓扑可能定义网络的物理和逻辑方面。在同一个网络中,逻辑拓扑和物理拓扑可能相同,也可能不同。

Point-to-Point

点对点网络包含恰好两个主机,例如计算机、交换机或路由器,使用一根电缆背靠背连接的服务器。通常,一个主机的接收端连接到另一个主机的发送端,反之亦然。

如果主机在逻辑上是点对点连接的,那么可能有多个中间设备。但是,最终主机不知道底层网络,并且会将对方视为直接连接。

Bus Topology

在总线拓扑的情况下,所有设备共享单条通信线路或电缆。当多个主机同时发送数据时,总线拓扑可能会出现问题。因此,总线拓扑使用 CSMA/CD 技术或识别一个主机为总线主设备来解决该问题。这是网络连接的一种简单形式,其中一台设备的故障不会影响其他设备。但是,共享通信线路的故障会导致所有其他设备停止运行。

bus topology

共享信道的两端都有线路终端器。数据仅在一个方向发送,并且一旦到达最远端,终端器就会从线路中删除数据。

Star Topology

星形拓扑中的所有主机都使用点对点连接连接到一个称为集线器设备的中央设备。也就是说,主机和集线器之间存在点对点连接。集线器设备可以是以下任一种设备:

  1. 第 1 层设备,例如集线器或中继器

  2. 二层级设备,例如交换机或网桥

  3. 三层级设备,例如路由器或网关

star topology

与总线拓扑一样,集线器充当单点故障。如果集线器发生故障,则所有主机与其他所有主机的连接都会失败。主机之间的每项通信都仅通过集线器进行。星型拓扑不需要高成本,因为连接一台主机只需要一根电缆,而且配置也很简单。

Ring Topology

在环形拓扑中,每台主机连接到另外两台主机,创建了一个环形网络结构。当一台主机尝试与不与其相邻的主机通信或向其发送消息时,数据将通过所有中间主机进行传输。要在现有结构中连接一台主机,管理员可能只需要再使用一根电缆。

ring topology

任何主机的故障都会导致整个环路的故障。因此,环路中的每个连接都是故障点。有些方法采用了另一个备份环路。

Mesh Topology

在这种类型的拓扑中,一台主机连接到一个或多个主机。该拓扑具有点对点连接的所有其他主机的点对点连接中的主机,或者也可能具有仅点对点连接到少数主机的点对点连接中的主机。

mesh topology

网状拓扑中的主机还充当其他没有直接点对点链路的主机的中继。网状技术分为两种类型:

  1. Full Mesh :网络中所有主机都与每个其他主机都有点对点连接。因此,对于每个新主机,都需要 n(n-1)/2 个连接。它在所有网络拓扑中提供了最可靠的网络结构。

  2. Partially Mesh :并非所有主机都与每个其他主机都有点对点连接。主机以某种任意方式相互连接。需要为某些主机提供可靠性的情况下,该拓扑存在。

Tree Topology

它也被称为层次拓扑,这是目前使用最广泛的网络拓扑形式。该拓扑模拟为扩展星形拓扑并继承总线拓扑的特性。

该拓扑将网络划分为多个网络层面/层级。主要在局域网中,网络分为三类网络设备。最下层是接入层,计算机附加在此处。中间层被称为分配层,它充当上层和下层之间的调解器。最高层被称为核心层,是网络的中心点,也是树的根,所有节点从中分叉。

tree topology

所有邻近主机在其之间进行点对点连接。类似于总线拓扑,如果根节点关闭,那么整个网络都会受到影响,即使它不是单点故障。每个连接都充当故障点,故障会导致网络划分为无法访问的片段。

Daisy Chain

这种拓扑以线性方式连接所有主机。类似于环形拓扑,除端点主机外,所有主机仅连接到两台主机。这意味着,如果菊花链中的端点主机连接,则表示环形拓扑。

daisy chain topology

菊花链拓扑中的每个链路都表示单点故障。每个链路故障都会将网络分成两个部分。每个中间主机充当其直接主机的中继。

Hybrid Topology

包含多种拓扑设计的网络结构称为混合拓扑。混合拓扑继承了所有包含拓扑的优点和缺点。

hybrid topology

上面的图片表示任意混合拓扑。组合拓扑可能包含星形、环形、总线和菊花链拓扑的属性。大多数广域网都通过双环拓扑连接,而连接到它们的网络大多是星形拓扑网络。互联网是最大的混合拓扑的最佳示例

Computer Network Models

网络工程是一项复杂的任务,涉及软件、固件、芯片级工程、硬件和电子脉冲。为了简化网络工程,整个网络概念被划分为多个层。每层涉及一些特定任务,且独立于所有其他层。但作为一个整体,几乎所有网络任务都依赖于这些层。层之间共享数据,它们彼此依赖才能接收输入并发送输出。

Layered Tasks

在网络模型的分层架构中,整个网络进程被划分为小任务。然后,将每个小任务分配给一个特定层,该层只致力于处理任务。每层只做特定工作。

在分层通信系统中,一台主机的某个层处理由远程主机所做或准备由远程主机所做的任务,而且处理的任务位于远程主机同一级别的对等层。任务要么由最低层要么由最高层的层启动。如果任务由最高层启动,则向下传递给下一层以便进一步处理。下层做同样的事情,它处理任务并将其传递给下层。如果任务由最低层启动,则采取相反的路径。

layered tasks

每一层都将执行其任务部分所需的所有过程、协议和方法集合在一起。所有层通过封装头和尾来识别其对应的层。

OSI Model

开放系统互连是一种针对所有通信系统制定的开放式标准。OSI 模型由国际标准化组织 (ISO) 建立。此模型具有七层:

OSI model
  1. Application Layer :此层负责面向应用程序用户提供接口。此层包含与用户直接交互的协议。

  2. Presentation Layer :此层定义了如何在远程主机的本机格式中显示主机的本机格式中的数据。

  3. Session Layer :此层维护远程主机之间的会话。例如,一旦完成用户/密码身份验证,远程主机就会维持此会话一段时间,并在该时间范围内不再要求进行身份验证。

  4. Transport Layer :此层负责主机之间的端到端传递。

  5. Network Layer :此层负责地址分配和网络中主机的唯一寻址。

  6. Data Link Layer :此层负责从行读取和向行写入数据。此层会检测到链路错误。

  7. Physical Layer :此层定义了硬件、布线、功率输出、脉冲速率等。

Internet Model

互联网使用 TCP/IP 协议套件,也称为 Internet 套件。这定义了包含 4 层架构的 Internet 模型。OSI 模型是通用通信模型,但 Internet 模型是互联网用于其所有通信的方式。互联网与其底层网络架构无关,其模型也是如此。此模型具有以下层:

Internet model
  1. Application Layer :此层定义允许用户与网络交互的协议,比如 FTP、HTTP 等。

  2. Transport Layer :此层定义了数据如何在主机之间流动。此层的主要协议是传输控制协议 (TCP)。此层确保在主机之间传递的数据是有序的,它负责端到端传递。

  3. Internet Layer : 互联网协议(IP)在此层工作。此层便于主机寻址和识别。此层定义路由。

  4. Link Layer : 此层提供发送和接收实际数据的机制。与它的 OSI 模型对应层不同,此层独立于底层网络架构和硬件。

Computer Network Security

在互联网的初期,其使用仅限于军方和大学,用于研究和开发目的。后来,当所有网络合并在一起并形成互联网时,数据用于通过公共传输网络传输。普通人可能会发送可能高度敏感的数据,例如其银行凭证、用户名和密码、个人文件、在线购物详情或机密文件。

所有安全威胁都是故意的,即仅在故意触发时才会发生。安全威胁可分为以下几类:

  1. Interruption

中断是一种安全威胁,该威胁会攻击资源的可用性。例如,用户无法访问其网络服务器或网络服务器被劫持。

  1. Privacy-Breach

在此威胁中,用户的隐私受到损害。未经授权的人员正在访问或拦截原始经过身份验证的用户发送或接收的数据。

  1. Integrity

此类型的威胁包括通信原始背景中的任何变更或修改。攻击者拦截并接收发送者发送的数据,然后攻击者修改或生成虚假数据并发送给接收者。接收者接收数据时假设数据是由原始发送者发送的。

  1. Authenticity

当攻击者或安全违规者冒充真人的身份并访问资源或与其他真正用户进行通信时,就会发生此威胁。

当今世界中没有一种技术可以提供 100% 的安全性。但是,可以采取措施来保护数据在不安全的网络或互联网中传输时的安全。使用最广泛的技术是密码术。

cryptography

密码术是一种加密明文数据的技术,使得难以理解和解释数据。目前有几种可用的密码算法,如下所述:

  1. Secret Key

  2. Public Key

  3. Message Digest

Secret Key Encryption

发送者和接收者都有一个密钥。此密钥用于在发送方端加密数据。在加密数据后,它将被发送到公有域,发送给接收者。因为接收者知道并拥有密钥,所以加密的数据包可以轻松解密。

密钥加密的一个示例是数据加密标准 (DES)。在密钥加密中,网络中每个主机都需要一个单独的密钥,这使得管理变得很困难。

Public Key Encryption

在此加密系统中,每个用户都有自己的密钥,并且不在共享域中。密钥永远不会在公有域中显示。除了密钥之外,每个用户都有自己的公开密钥。公钥始终是公开的,由发送者用于加密数据。当用户收到加密数据时,他们可以通过自己的密钥轻松对其进行解密。

公钥加密的一个示例是 Rivest-Shamir-Adleman (RSA)。

Message Digest

在此方法中,不发送实际数据,而是计算散列值并发送。另一端用户计算自己的散列值,并与刚刚接收的散列值进行比较。如果两个散列值匹配,则接受,否则拒绝。

消息摘要的示例是 MD5 hash。它主要用于身份验证,其中用户密码与保存在服务器上的密码进行交叉核对。

Physical Layer - Introduction

OSI 模型中的物理层承担着与实际硬件和信令机制交互的作用。物理层是 OSI 网络模型中唯一真正处理两个不同站点的物理连接的层。该层定义了用于表示二进制信号的硬件设备、布线、布线、频率、脉冲等。

物理层为数据链路层提供服务。数据链路层将帧移交给物理层。物理层将它们转换为代表二进制数据的电脉冲。然后通过有线或无线媒体发送二进制数据。

Signals

当数据通过物理介质发送时,它需要首先转换为电磁信号。数据本身可以是模拟的,例如人声,也可以是数字的,例如磁盘上的文件。模拟和数字数据都可以用数字或模拟信号表示。

  1. 数字信号本质上是离散的,表示电压脉冲序列。数字信号用于计算机系统的电路中。

  2. 模拟信号本质上是连续波形,由连续的电磁波表示。

Transmission Impairment

当信号通过介质传播时,它们往往会变弱。这可能有许多原因,如下所示:

  1. 为了使接收器准确地解释数据,信号必须足够强。当信号通过介质时,它往往会变弱。随着距离的增加,它的力量会减弱。

  2. 当信号在介质中传播时,它倾向于扩散和重叠。分散的量取决于所使用的频率。

  3. Delay distortion 信号通过预先定义的速度和频率发送至介质。如果信号速度和频率不匹配,则信号有可能以任意方式到达目的地。在数字介质中,一些比特比先前发送的比特更早到达这一点非常关键。

  4. Noise 模拟或数字信号中的随机扰动或波动称为信号中的噪声,它可能会扭曲正在传输的实际信息。噪声可以用以下分类中的一个来表征: Thermal Noise 热量会激发介质的电子导体,这可能会在介质中引入噪声。在一定程度内,热噪声是不可避免的。 Intermodulation 当多个频率共享一个介质时,它们的干扰可能导致介质中的噪声。如果两个不同的频率共享一个介质,并且其中一个频率强度过大或组件本身未正常工作,则会出现互调噪声,然后所得频率可能无法按预期的方式传递。 Crosstalk 当外来信号进入介质时,就会发生这种类型的噪声。这是因为一个介质中的信号会影响第二个介质的信号。 Impulse 此噪声是由于不规则扰动(如雷电、电力、短路或组件故障)引起的。数字数据大多受此类噪声的影响。

Transmission Media

称为传输介质的信息在两个计算机系统之间的发送介质。传输介质有两种形式。

  1. Guided Media 所有通信电线/电缆都是导向介质,如 UTP、同轴电缆和光纤。在这种介质中,发送器和接收器直接连接,信息通过该介质发送(引导)。

  2. Unguided Media 无线或开放式空间被称为非导向介质,因为发送器和接收器之间没有连接。信息通过空气传播,包括实际接收者在内的任何人都可以收集信息。

Channel Capacity

信息的传输速度称为信道容量。在数字世界中,我们将其计为数据速率。它取决于许多因素,例如:

  1. Bandwidth: 底层介质的物理限制。

  2. Error-rate: 由于噪声而导致信息接收不正确。

  3. Encoding: 用于信令的电平数。

Multiplexing

多路复用是一种在单个介质上混合和发送多个数据流的技术。此技术需要称为多路复用器 (MUX) 的系统硬件来对数据流进行多路复用并将其发送到介质,以及从介质中获取信息并将其分发到不同目的地的解复用器 (DMUX)。

Switching

交换是一种从源头向目的地发送数据/信息但未直接连接的机制。网络具有互连设备,这些设备从直接连接的源获取数据,存储数据,分析数据,然后转发到最接近目的地的下一个互连设备。

交换可以分为:

switching

Digital Transmission

数据或信息可以使用两种方式存储,模拟和数字。对于计算机来说,它必须采用离散的数字形式才能使用数据。与数据类似,信号也采用模拟和数字形式。为了以数字方式传输数据,它必须先被转换为数字形式。

Digital-to-Digital Conversion

本部分解释了如何将数字数据转换为数字信号。它可以通过两种方式完成,线路编码和块编码。对于所有通信,都必须使用线路编码,而块编码是可选的。

Line Coding

将数字数据转换为数字信号的过程称为线路编码。数字数据采用二进制格式。它在内部表示(存储)为一系列 1 和 0。

line coding

数字信号由离散信号表示,它表示数字数据。有三种可用的线路编码方案:

line coding schemes

Uni-polar Encoding

单极编码方案使用单个电压电平来表示数据。在这种情况下,为了表示二进制 1,高电压会传输,为了表示 0,不会传输电压。它还被称为单极-不归零,因为不存在静止条件,即它表示 1 或 0。

Unipolar NRZ

Polar Encoding

极性编码方案使用多个电压电平来表示二进制值。极性编码有四种类型:

  1. 极性不归零(极性 NRZ)它使用两个不同的电压电平来表示二进制值。一般正电压表示 1,负电压表示 0。它也是 NRZ,因为它不存在静止条件。NRZ 方案有两个变体:NRZ-L 和 NRZ-I。NRZ-L 会在遇到不同位时改变电压电平,而 NRZ-I 会在遇到 1 时改变电压。

归零(RZ)NRZ 的问题在于,如果发送器和接收器的时钟不同步,接收器无法确定何时结束一个位和何时开始下一个位。RZ 使用三个电压电平,正电压表示 1,负电压表示 0,零电压表示无。信号会在位中改变,而不是在位之间改变。

曼彻斯特这种编码方案结合了 RZ 和 NRZ-L。位时间分为两半。它在位中间过渡,并且在遇到不同位时改变相位。

差分曼彻斯特这种编码方案结合了 RZ 和 NRZ-I。它也过渡在位的中间,但是仅在遇到 1 时改变相位。

Bipolar Encoding

双极编码使用三个电压电平,即正、负和零。零电压表示二进制 0,位 1 通过交替正电压和负电压来表示。

bipolar

Block Coding

为了确保接收到的数据帧的准确性,使用了冗余位。例如,在偶校验中,添加一个校验位,以便使帧中 1 的数量变为偶数。通过这种方式,位数会增加。这被称为块编码。

块编码以斜线表示法表示,mB/nB。这意味着,m 位块被 n 位块替换,其中 n > m。块编码涉及三个步骤:

  1. Division,

  2. Substitution

  3. Combination.

完成块编码后,对它进行线路编码以进行传输。

Analog-to-Digital Conversion

麦克风会产生模拟语音,摄像机会产生模拟视频,它们被视为模拟数据。为了通过数字信号传输这种模拟数据,我们需要进行模数转换。

模拟数据是波形中的连续数据流,而数字数据是离散的。为了将模拟波转换为数字数据,我们使用脉冲编码调制 (PCM)。

PCM 是将模拟数据转换为数字形式最常用的方法之一。它涉及三个步骤:

  1. Sampling

  2. Quantization

  3. Encoding.

Sampling

sampling

模拟信号在每个 T 间隔取样。取样的最重要的因素是模拟信号取样的速率。根据奈奎斯特定理,取样速率必须至少为信号最高频率的两倍。

Quantization

quantization

取样产生连续模拟信号的离散形式。每个离散模式显示该时刻模拟信号的幅度。量化是在最大幅度值和最小幅度值之间进行的。量化是对瞬时模拟值的近似。

Encoding

encoding

在编码中,每个近似值然后被转换成二进制格式。

Transmission Modes

传输模式决定了数据如何在两台计算机之间传输。1 和 0 形式的二进制数据可以通过两种不同的模式发送:并行和串行。

Parallel Transmission

parallel

二进制位被组织成定长的组。发送器和接收器都通过等量的数据线并行连接。这两台计算机都区分高位和低位数据线。发送器一次在所有线上发送所有位。由于数据线等于一组或数据帧中的位数,因此一组完整的位(数据帧)一次发送。并行传输的优点是速度快,缺点是导线成本,因为它等于并行发送的比特数。

Serial Transmission

在串行传输中,位在队列方式下逐个发送。串行传输只需要一个通信通道。

serial

串行传输可以是异步或同步的。

Asynchronous Serial Transmission

之所以这么命名,是因为没有时间的重要性。数据位有特定的模式,它们帮助接收器识别开始和结束数据位。例如,每个数据字节前缀一个 0,并在末尾添加一个或多个 1。

两个连续的数据帧(字节)之间可能存在间隙。

Synchronous Serial Transmission

同步传输中的时序很重要,因为没有机制遵循来识别开始和结束数据位。没有模式或前缀/后缀方法。数据位以突发模式发送,在字节(8 位)之间不保持间隙。单个数据位突发可能包含多个字节。因此,时序变得非常重要。

由接收器识别和将位分隔为字节。同步传输的优点是速度快,而且没有异步传输中额外的报头和报尾位的开销。

Analog Transmission

将数字数据通过模拟媒体发送时,需要将其转换为模拟信号。根据数据格式会有两种情况。

*带通:*滤波器用于滤除和传递感兴趣的频率。带通是一组可以传递滤波器的频率。

Low-pass: 低通是一种传递低频信号的滤波器。

当数字数据被转换成带通模拟信号时,这被称为数模转换。当低通模拟信号被转换成带通模拟信号时,这被称为模数转换。

Digital-to-Analog Conversion

当从一台计算机发送数据到另一台计算机通过某些模拟载波时,它首先被转换为模拟信号。模拟信号被改变以反映数字数据。

模拟信号由其幅度、频率和相位来表征。有三种数模转换:

  1. Amplitude Shift Keying 在此转换技术中,模拟载波信号的幅度被改变以反映二进制数据。当二进制数据表示数字 1 时,幅度保持不变;否则,将其设置为 0。频率和相位与原始载波信号中的相同。

  2. Frequency Shift Keying 在此转换技术中,模拟载波信号的频率被改变以反映二进制数据。此技术使用两个频率 f1 和 f2。它们中的一个,例如 f1,被选为表示二进制数字 1,而另一个则用于表示二进制数字 0。载波波的幅度和相位保持不变。

  3. Phase Shift Keying 在此转换方案中,原始载波信号的相位被改变以反映二进制数据。当遇到新的二进制符号时,信号的相位被改变。原始载波信号的幅度和频率保持不变。

  4. Quadrature Phase Shift Keying QPSK 将相位改变为一次反映两个二进制数字。这是在两个不同的相位中完成的。二进制数据的总流被平均分配到两个子流中。串行数据在两个子流中都转换成并行数据, 然后使用 NRZ 技术将每个流转换成数字信号。最后, 将两个数字信号合并到一起。

Analog-to-Analog Conversion

模拟信号被修改以表示模拟数据。这种转换也称为模拟调制。当使用带通时需要模拟调制。模拟到模拟的转换可以通过三种方式完成:

analog modulation
  1. Amplitude Modulation 在这种调制中, 幅度信号的幅度被修改以反映模拟数据。幅度调制是通过乘法器实现的。调制信号(模拟数据)的幅度乘以载波频率的幅度, 然后反射模拟数据。载波信号的频率和相位保持不变。

  2. Frequency Modulation 在这种调制技术中, 载波信号的频率被修改以反映调制信号(模拟数据)的电压电平变化。载波信号的幅度和相位没有被改变。

  3. Phase Modulation 在调制技术中, 载波信号的相位被调制以反映模拟数据信号电压(幅度)的变化。相位调制在实际上与频率调制类似, 但在相位调制中没有增加载波信号的频率。载波信号的频率被改变(使密集和稀疏)以反映调制信号幅度中的电压变化。

Transmission Media

传输媒体只不过是在计算机网络中进行通信的物理媒体。

Magnetic Media

在网络诞生之前,从一台计算机向另一台计算机传输数据的最方便的方法之一就是将其保存在某些存储媒体上,然后在不同站点之间进行物理传输。尽管在当今高速互联网时代,这似乎是一种老套的方法,但是当数据量巨大时,磁性媒体就会发挥作用。

例如,一家银行必须处理和传输其客户的巨量数据,出于安全原因和为了避免不确定的灾难,它在某些遥远的地方存储数据备份。如果银行需要存储其大量的备份数据,那么通过互联网传输是不可行的。广域网链路可能不支持如此高的速度。即使支持,成本也过高。

在这些情况下,数据备份存储在磁带上或磁碟上,然后在远程位置进行物理转移。

Twisted Pair Cable

双绞线由两根绝缘的塑料铜线绞合在一起形成一个单一介质。在这两根线中,只有一根承载实际信号,另一根用于接地参考。线之间的扭曲有助于减少噪声(电磁干扰)和串扰。

twisted pairs

双绞线电缆有两种类型:

  1. 屏蔽双绞线(STP)电缆

  2. 非屏蔽双绞线(UTP)电缆

STP 电缆带金属箔覆盖的绞合线对。这使得它对噪音和串扰更不敏感。

UTP 有七类,每类适用于特定的用途。在计算机网络中,最常使用 Cat-5、Cat-5e 和 Cat-6 电缆。UTP 电缆通过 RJ45 连接器连接。

Coaxial Cable

同轴电缆有两根铜线。芯线位于中心,由实心导体制成。芯线被包在绝缘护套中。第二根线缠绕在护套上,反过来也被绝缘护套包覆。这一切都覆盖着塑料护套。

coaxial cable

同轴电缆由于其结构,能够承载比双绞线电缆更高的频率信号。环绕结构为其提供了针对噪声和串扰的良好屏蔽。同轴电缆提供高达 450 mbps 的高带宽速率。

同轴电缆有三个类别,即 RG-59(有线电视)、RG-58(细以太网)和 RG-11(粗以太网)。RG 代表无线电政府。

电缆使用 BNC 连接器和 BNC-T 连接。BNC 终端用于在远端端接电线。

Power Lines

电力线通信(PLC)是一种使用电源线传输数据信号的第 1 层(物理层)技术。在 PLC 中,调制数据通过电缆发送。另一端的接收器解调并解释数据。

由于电力线的广泛部署,PLC 可以对所有带电设备进行控制和监控。PLC 采用半双工工作模式。

有两种类型的 PLC:

  1. Narrow band PLC

  2. Broad band PLC

窄带 PLC 提供较低的数据速率,最高可达数百 kbps,因为它们的工作频率较低(3-5000 kHz)。它们可以延伸数公里。

宽带 PLC 提供较高的数据速率,最高可达数百 Mbps,并以较高的频率工作(1.8 – 250 MHz)。它们的延伸距离不如窄带 PLC。

Fiber Optics

光纤利用光线的特性工作。当光线以临界角射入时,它会倾向于以 90 度折射。这种特性已应用于光纤中。光纤电缆的纤芯由高品质玻璃或塑料制成。从它的一端发射光,光穿过它并在另一端由光探测器探测光流并将其转换为电气数据。

光纤提供最高的速度模式。它有两种模式,一种是单模光纤,另一种是多模光纤。单模光纤可以传输单束光,而多模光纤可以传输多束光。

fiber optics

光纤还具有单向和双向传输功能。要连接和访问光纤,需要使用特殊类型的连接器。这些可以是用户信道 (SC)、直头 (ST) 或 MT-RJ。

Wireless Transmission

无线传输是一种非导引介质形式。无线通信涉及两台或多台设备通过无线进行通信而无需建立物理链路。无线信号散布在空气中,并由合适的接收天线接收和解读。

当天线连接到计算机或无线设备的电气电路时,它会将数字数据转换成无线信号并在其频率范围内全部传播。另一端的接收器接收这些信号并将其转换回数字数据。

电磁频谱的一小部分可用于无线传输。

electromagnetic spectrum

Radio Transmission

射频更容易产生,并且由于其波长较长,它可以穿透墙壁和类似的结构。电波的波长可以从 1 毫米到 100,000 公里,频率范围从 3 赫兹(极低频)到 300 吉赫兹(极高频)。射频分为六个频段。

较低频率的电波可以穿透墙壁,而较高的射频可以直线传播并反弹。低频波的功率在长距离传播时会急剧下降。高频电波的功率更大。

极低频、低频、中频等较低频率可以在地面上传播长达 1000 公里,跨越地球表面。

radio wave grounded

高频电波容易被雨水和其他障碍物吸收。它们利用地球大气层的电离层。高频电波如高频和甚高频波段向上传播。到达电离层时,它们会被折射回地球。

radio wave ionosphere

Microwave Transmission

100 兆赫以上的电磁波倾向于直线传播,并且可以通过将这些波束射向一个特定的工作站来发送信号。由于微波以直线传播,发送器和接收器都必须严格地对准在视线范围内。

微波的波长范围为 1 毫米 – 1 米,频率范围为 300 MHz 到 300 GHz。

microwave

微波天线通过将波聚焦汇聚成一个波束。如图所示,可以对多个天线进行对齐以实现更远的传输距离。微波具有较高的频率,并且不会像障碍物一样穿透墙壁。

微波传输很大程度上取决于天气条件及其使用的频率。

Infrared Transmission

红外波位于可见光谱和微波之间。它的波长为 700-nm 至 1-mm,频率范围为 300-GHz 至 430-THz。

红外波用于电视和遥控器等非常短程通信目的。红外波呈直线传播,因此本质上是定向的。由于频率范围高,红外波无法穿透墙等障碍物。

Light Transmission

用于数据传输的最高电磁频谱是光或光学信号。这是通过激光实现的。

由于频率光线的使用,它倾向于严格地沿直线传播。因此,发送器和接收器必须处于视线范围内。由于激光传输是单向的,因此需要在通信的两端安装激光器和光电探测器。激光束通常宽 1 毫米,因此精确对齐两个遥远的接收器以指向激光源是一项精细工作。

light transmission

激光器用作 Tx(发送器),光电探测器用作 Rx(接收器)。

激光不能穿透障碍物,如墙壁、雨和浓雾。此外,激光束会因风、大气温度或路径中的温度变化而失真。

激光对于数据传输是安全的,因为在不中断通信信道的情况下窃听 1 毫米宽的激光非常困难。

Multiplexing

多路复用是一种技术,通过该技术可以同时通过共享链路处理不同的模拟和数字传输流。多路复用将大容量介质分成低容量逻辑介质,然后由不同的流共享。

可以通过无线(射频)、使用物理介质(电缆)和光(光纤)进行通信。所有介质都具有多路复用功能。

当多个发送方尝试通过单一介质发送时,一种称为多路复用器的设备会划分物理信道,并为每个信道分配一个。在通信的另一端,一个解复用器从单个介质接收数据,识别它们,并发送给不同的接收器。

Frequency Division Multiplexing

当载波为频率时,使用 FDM。FDM 是一种模拟技术。FDM 将频谱或载波带宽划分为逻辑信道,并为每个信道分配一个用户。每个用户都可以独立使用信道频率,并对其具有独占访问权。所有信道都被划分,从而彼此不重叠。信道由保护带分开。保护带是任何信道都不使用的频率。

fdm

Time Division Multiplexing

TDM 主要应用于数字信号,但也可以应用于模拟信号。在 TDM 中,共享信道通过时隙分配给其用户。每个用户只能在提供的时隙内传输数据。数字信号被划分为帧,相当于时隙,即可以在给定的时隙内传输的最佳大小的帧。

TDM 以同步模式工作。两端(即多路复用器和解复用器)都及时同步,并且都同时切换到下一个信道。

tdm

当信道 A 在一端传输其帧时,解复用器在另一端为信道 A 提供介质。一旦信道 A 的时隙到期,这端就会切换到信道 B。在另一端,解复用器以同步方式工作,并为信道 B 提供介质。来自不同信道的信号交错地传输路径。

Wavelength Division Multiplexing

光有不同的波长(颜色)。在光纤模式中,通过使用不同的波长将多个光载波信号多路复用到光纤中。这是一种模拟多路复用技术,在概念上与 FDM 相同,但使用光作为信号。

wdm

此外,可以在每个波长上整合时分多路复用,以容纳更多的数据信号。

Code Division Multiplexing

可以通过使用码分多路复用通过单一频率传输多个数据信号。FDM 将频率分成较小的信道,但 CDM 允许其用户全带宽,并且使用唯一码始终传输信号。CDM 使用正交码来扩展信号。

每个站点都会分配一个称为码片的唯一码。信号在整个带宽内使用这些码片独立传输。接收器预先知道它必须接收的码片码信号。

Network Switching

交换是将来自一个端口的数据包转发到通向目标的端口的过程。当数据进入一个端口时,称为入口;当数据离开一个端口或发出时,称为出口。通信系统可能包括许多交换机和节点。总体来说,交换可以分为两类:

  1. Connectionless: 根据转发表转发数据。不需要事先握手,确认是可选的。

  2. Connection Oriented: 在将数据交换到目标进行转发之前,需要在两个端点之间的路上预先建立一条电路。然后在此电路上传输数据。在传输完成后,可以保留电路以备将来使用,也可以立即关闭电路。

Circuit Switching

当两个节点通过专用通信路径彼此通信时,这称为电路交换,需要一条预先指定的数据传输路线,不允许其他数据传输。在电路交换中,为了传输数据,必须建立电路,以便进行数据传输。

电路可以是永久的或临时的。使用电路交换的应用程序可能必须经历三个阶段:

  1. Establish a circuit

  2. Transfer the data

  3. Disconnect the circuit

circuit switching

电路交换是为语音应用程序设计的。电话是最适合的电路交换示例。在用户拨打电话之前,必须在网络上建立呼叫者和被叫者之间的虚拟路径。

Message Switching

这种技术介于电路交换和分组交换之间。在报文交换中,整个报文被视为一个数据单元,并完整交换/传输。

使用报文交换工作的交换机首先接收整个报文,并将其缓冲,直到有可用于将其传输到下一个跳跃的资源。如果下一个跳跃没有足够的资源来容纳大尺寸报文,则存储报文,然后交换机等待。

message switching

这种技术被认为是对电路交换的替代。与电路交换中的为两个实体完全阻塞路径不同,报文交换被分组交换所取代。报文交换具有以下缺点:

  1. 在传输路径中的每个交换机都需要足够大的存储空间来容纳整个消息。

  2. 由于采用了存储转发技术,并且只有在资源可用时才等待,所以消息交换非常慢。

  3. 消息交换不是流媒体和实时应用程序的解决方案。

Packet Switching

消息交换的不足之处催生了一种分组交换的思想。整个消息被分解成更小的块,称为分组。交换信息被添加到每个分组的头部并独立传输。

中间网络设备更容易存储小尺寸分组,而且它们在载波路径或交换机的内部存储器中也不会占用太多的资源。

packet switching

分组交换提高了线路效率,因为可以将来自多个应用程序的分组多路复用到载波上。互联网使用分组交换技术。分组交换使用户能够根据优先级区分数据流。分组根据其优先级进行存储和转发,以提供服务质量。

数据链路层是 OSI 分层模型的第二层。该层是最复杂的层之一,具有复杂的功能和责任。数据链路层隐藏底层硬件的详细信息,并且将自己表示为上层通信的介质。

数据链路层在以某种意义上直接连接的两个主机之间工作。这种直接连接可能是点对点或广播。广播网络上的系统据说在同一条链路上。当数据链路层处理单个碰撞域上的多个主机时,其工作往往变得更加复杂。

数据链路层负责逐位将数据流转换为信号并通过底层硬件发送。在接收端,数据链路层从硬件中获取以电信号形式存在的数据,将它们组装成可识别的帧格式,并移交给上层。

数据链路层有两个子层:

  1. Logical Link Control: 处理协议、流控制和错误控制

  2. Media Access Control: 处理媒体的实际控制

数据链路层代表上层执行许多任务。这些任务有:

  1. Framing 数据链路层从网络层接收分组并将它们封装到帧中。然后,它以逐位的方式将每个帧发送到硬件上。在接收端,数据链路层从硬件中拾取信号并将它们组装成帧。

  2. Addressing 数据链路层提供第 2 层硬件寻址机制。假定硬件地址在链路中是唯一的。它在制造时被编码到硬件中。

  3. Synchronization 当数据帧在链路上发送时,两台机器必须同步才能进行传输。

  4. Error Control 有时信号在传输过程中可能会遇到问题,并且比特会发生翻转。这些错误被检测到并尝试恢复实际数据位。它还向发送方提供错误报告机制。

  5. Flow Control 同一链路上的站点可能有不同的速度或容量。数据链路层确保流控制,使两台机器能够以相同的速度交换数据。

  6. Multi-Access 当共享链路上的主机尝试传输数据时,很可能会发生碰撞。数据链路层提供诸如 CSMA/CD 等机制,以便在多个系统之间访问共享媒体。

Error Detection and Correction

有很多原因,如噪音、串扰等,可能导致数据在传输过程中损坏。上层根据网络架构的一些概括视图工作,并不了解实际的硬件数据处理。因此,上层期望在系统之间进行无差错传输。如果应用程序接收到错误的数据,大多数应用程序将无法按预期工作。语音和视频等应用程序可能不会受到影响,即使出现一些错误,它们仍然可能正常工作。

数据链路层使用一些错误控制机制来确保帧(数据位流)以一定的准确度传输。但是要了解如何控制错误,必须知道可能出现哪种类型的错误。

Types of Errors

可能出现三种类型的错误:

  1. Single bit error 在一个帧中,只有一位是损坏的,尽管在任何地方。

  2. Multiple bits error 帧以损坏的状态收到多个位。

  3. Burst error 帧包含多个连续损坏的位。

错误控制机制可能涉及两种可能的方式:

  1. Error detection

  2. Error correction

Error Detection

通过奇偶校验和循环冗余校验 (CRC) 检测接收帧中的错误。在这两种情况下,都会发送一些额外的位以及实际数据,以确认在另一端接收到的位与发送的位相同。如果接收端端的反向检查失败,则认为这些位已损坏。

Parity Check

发送一个额外的位以及原始位,以便在偶数奇偶校验的情况下使 1 的数量为偶数,或在奇数奇偶校验的情况下使 1 的数量为奇数。

发送方在创建帧时会计算其中的 1 的数量。例如,如果使用偶数奇偶校验并且 1 的数量为偶数,则添加值为 0 的一位。这样 1 的数量保持偶数。如果 1 的数量为奇数,则需要添加一位,值为 1,使它变为偶数。

even parity

接收方只需计算帧中 1 的数量。如果 1 的数量为偶数并且使用了偶数奇偶校验,则认为该帧未损坏并且可以接受。如果 1 的数量为奇数并且使用了奇数奇偶校验,则该帧仍然未损坏。

如果在传输过程中某一位发生翻转,接收方可以通过计算 1 的数量来检测到它。但是当多个位有错误时,接收方很难检测到错误。

Cyclic Redundancy Check (CRC)

CRC 是一种不同的方法,用于检测接收到的帧是否包含有效数据。此技术涉及对要发送的数据位进行二进制划分。除数是使用多项式生成的。发送方对要发送的位执行除法运算并计算余数。在发送实际位之前,发送方在实际位的末尾添加余数。实际数据位加上余数称为码字。发送方将数据位传输为码字。

crc

在另一端,接收方使用相同的 CRC 除数对码字执行除法运算。如果余数包含所有零,则接受数据位,否则认为在传输过程中发生了一些数据损坏。

Error Correction

在数字世界中,错误校正可以通过两种方式完成:

  1. Backward Error Correction 当接收器检测到接收数据中的错误时,它要求发件人重新发送数据单元。

  2. Forward Error Correction 当接收器检测到接收数据中某些错误时,它执行错误校正代码,从而帮助它自动恢复和纠正某些类型的错误。

第一种方法 - 向后错误校正 - 简单且只能在重新传输不昂贵的情况下高效使用。例如,光纤。但在无线传输的情况下,重新传输可能代价太高。在后一种情况下,使用了前向错误校正。

为了纠正数据帧中的错误,接收器必须确切地知道该帧中的哪个位已损坏。为了找到出错的位,冗余位用作奇偶校验位来进行错误检测。例如,我们采用 ASCII 词(7 位数据),那么我们需要 8 种信息:前 7 位用于告诉我们哪个位出错,再加 1 位表示没有错误。

对于 m 位数据,使用 r 位冗余位。r 位可以提供 2r 种信息组合。在 m+r 位信息代码中,r 位本身可能会损坏。因此,所用 r 位数必须传达有关 m+r 位位置加上无错误信息,即 m+r+1 的信息。

required bits

数据链路层负责实现点对点流程和错误控制机制。

Flow Control

当一个数据帧(第 2 层数据)通过一个介质从一个主机发送到另一个主机时,要求发送方和接收方以相同速度工作。也就是说,发送方以接收方能够处理和接收数据的速度发送数据。如果发送方或接收方的速度(硬件/软件)不同怎么办?如果发送方发送得太快,接收方可能会超载(淹没),数据可能会丢失。

可以部署两种类型的机制来控制流:

  1. Stop and Wait

这种流控制机制强制发送方在传输数据帧后停止并等待收到已发送数据帧的确认。

  1. Sliding Window 在这种流控制机制中,发送方和接收方都同意在发出确认后数据帧的数量。正如我们所学到的,停止并等待流控制机制浪费了资源,此协议尝试尽可能地利用底层资源。

Error Control

当传输数据帧时,数据帧在传输过程中可能会丢失,或者接收到时损坏。在这两种情况下,接收方都不会收到正确的数据帧,并且发送方对任何丢失的情况一无所知。在这种情况下,发送方和接收方都配备了一些协议,帮助他们检测传输错误,例如数据帧丢失。因此,发送方会重新传输数据帧,或者接收方可能会请求重新发送上一个数据帧。

错误控制机制的要求:

  1. Error detection - 发送方和接收方,二者之一或两者,必须确定传输过程中存在一些错误。

  2. Positive ACK - 当接收方接收到正确的帧时,它应该确认。

  3. Negative ACK - 当接收方收到损坏的帧或重复的帧时,它向发送方发送 NACK,并且发送方必须重新传输正确的帧。

  4. Retransmission: 发送方维护一个时钟并设置一个超时时间。如果之前传输的数据帧的确认在超时之前没有到达,则发送方将重新传输该帧,认为该帧或其确认在传输过程中丢失。

数据链路层可以使用以下三种类型的技术,通过自动重复请求 (ARQ) 来控制错误:

  1. 停止等待 ARQ 在停止等待 ARQ 中可能会发生以下转换:发送方维护一个超时计数器。在发送帧时,发送方将启动超时计数器。如果及时收到帧的确认,发送方将传输队列中的下一个帧。如果没有及时收到确认,发送方将假定帧或其确认在传输过程中丢失。发送方将重新传输帧并启动超时计数器。如果收到否定确认,发送方将重新传输帧。

  2. 回退 N ARQ 停止等待 ARQ 机制无法充分利用资源。收到确认后,发送方将处于空闲状态,无所事事。在回退 N ARQ 方法中,发送方和接收方都将维护一个窗口。发送窗口大小使发送方能够在不接收前一个帧的确认下发送多个帧。接收窗口使接收方能够接收多个帧并确认这些帧。接收方将跟踪传入帧的序列号。当发送方在窗口中发送所有帧后,会检查已收到积极确认的序列号。如果所有帧都已得到积极确认,发送方将发送下一组帧。如果发送方发现已收到 NACK 或没有收到特定帧的任何 ACK,则会重新传输在此之后未收到任何积极 ACK 的所有帧。

  3. 选择性重复 ARQ 在回退 N ARQ 中,假定接收方没有用于其窗口大小的任何缓冲器空间,并且必须在帧到达时处理每个帧。这会强制发送方重新传输未确认的所有帧。在选择性重复 ARQ 中,接收方在跟踪序列号的同时,将帧缓冲在存储器中并仅向丢失或损坏的帧发送 NACK。在这种情况下,发送方仅发送收到 NACK 的数据包。

Network Layer Introduction

OSI 模型中的第 3 层称为网络层。网络层负责管理与主机和网络寻址、管理子网络和互连网络有关的选项。

网络层负责在子网内或子网外将数据包从源路由到目标。两个不同的子网可能具有不同的寻址方案或不兼容的寻址类型。与协议一样,两个不同的子网可能运行不同的协议,而这些协议彼此不兼容。网络层负责将数据包从源路由到目标,映射不同的寻址方案和协议。

Layer-3 Functionalities

在网络层工作的设备主要专注于路由。路由可能包括旨在实现单个目标的各种任务。这些任务可以是:

  1. Addressing devices and networks.

  2. 填充路由表或静态路由。

  3. 对传入和传出数据进行排队,然后根据为这些数据包设置的服务质量约束转发数据。

  4. 在两个不同的子网之间进行互连网络。

  5. 尽力将数据包传递到目标。

  6. 提供面向连接和无连接机制。

Network Layer Features

第 3 层凭借其标准功能可提供各种特性,如:

  1. Quality of service management

  2. 负载平衡和链路管理

  3. Security

  4. 具有不同方案的不同协议和子网之间的相互关系。

  5. 在物理网络设计之上进行不同的逻辑网络设计。

  6. L3 VPN 和隧道可用于提供端到端的专用连接。

互联网协议是广受尊重和部署的网络层协议,它有助于在互联网上实现端到端设备通信。它有两种类型。IPv4 已统治世界数十年,但现在地址空间即将耗尽。IPv6 被创建出来以取代 IPv4,并有望缓解 IPv4 的局限性。

Network Addressing

第 3 层网络寻址是网络层的主要任务之一。网络地址始终是逻辑的,即这些是可以通过适当配置进行更改的基于软件的地址。

网络地址始终指向主机/节点/服务器,或者它可以代表整个网络。网络地址始终配置在网络接口卡上,通常由系统通过机器的 MAC 地址(硬件地址或第 2 层地址)进行映射,以用于第 2 层通信。

现有的网络地址类型多种多样:

  1. IP

  2. IPX

  3. AppleTalk

我们在这里讨论 IP,因为这是我们如今唯一在实践中使用的地址。

network addressing

IP 寻址提供了一种机制来区分主机和网络。由于 IP 地址以分层方式分配,因此主机始终驻留在特定网络之下。需要在其子网外部进行通信的主机需要知道目标网络地址,在那里将发送数据包/数据。

不同子网中的主机需要一种机制来互相定位。DNS 可以完成此任务。DNS 是一个提供远程主机第 3 层地址与其域名或 FQDN 映射的服务器。当主机获取远程主机的第 3 层地址(IP 地址)时,它会将其所有数据包转发到其网关。网关是一个配备了所有通向目标主机数据包路由信息的路信息由的路由器。

路由器借助路由表,其中包含以下信息:

  1. 到达网络的方法

路由器在收到转发请求后,将数据包转发到其向目标的下一跳(相邻路由器)。

路径上的下一个路由器遵循同样的操作,最终数据包到达其目的地。

网络地址可以是以下几种之一:

  1. 单播(发送至一个主机)

  2. Multicast (destined to group)

  3. Broadcast (destined to all)

  4. 任意播(发送至最近的一个)

默认情况下路由器从不转发广播流量。多播流量使用特殊处理,因为它是优先级最高的视频流或音频流。任意播与单播类似,但当有多个可用目的地时,数据包会被传递给最近的目的地。

Network Layer Routing

当设备访问目标时具有多路径时,会优先选择一条路径。这个选择过程称为路由。路由由特殊网络设备(路由器)完成,也可以通过软件流程完成。基于软件的路由器功能有限,适用范围较小。

路由器始终配置一些默认路由。默认路由告诉路由器如果没有找到通往特定目的地的路由,则将数据包转发到何处。如果有多条路径可以到达同一目的地,路由器可以根据以下信息做出决策:

  1. Hop Count

  2. Bandwidth

  3. Metric

  4. Prefix-length

  5. Delay

路由可以通过静态配置或动态学习。可以配置一条路由优先于其他路由。

Unicast routing

互联网和内联网上大多数流量(称为单播数据或单播流量)都使用指定目的地发送。通过互联网路由单播数据称为单播路由。这是最简单的路由形式,因为目的地已知。因此,路由器只需查找路由表并将数据包转发到下一跳即可。

unicast routing

Broadcast routing

默认情况下,广播数据包不会在任何网络上的路由器路由和转发。路由器创建广播域。但是,可以在某些特殊情况下对其进行配置以转发广播。广播消息会发送给网络中的所有设备。

广播路由可以通过两种方式(算法)进行:

  1. 路由器创建数据数据包,然后将其逐个发送到每个主机。在这种情况下,路由器用不同的目标地址创建单个数据包的多个副本。所有数据包都作为单播发送,但由于已发送到所有设备,它模拟路由器广播一样。此方法会消耗大量带宽,并且路由器必须存储每个节点的目标地址。

  2. 其次,当路由器接收到要广播的数据包时,它会简单地将这些数据包泛洪到所有接口。所有路由器都以相同的方式配置。这种方法对路由器的 CPU 压力较小,但可能会导致从对等路由器接收到的数据包重复的问题。反向路径转发是一种路由器可以提前了解其应该从中接收广播的前任的技术。这种技术用于检测和丢弃重复项。

Multicast Routing

多播路由是广播路由的一种特殊情况,具有重要的差异和挑战。在广播路由中,数据包会发送到所有节点,即使它们不需要。但在多播路由中,数据只会发送到希望接收数据包的节点。

multicast routing

路由器必须知道希望接收多播数据包(或流)的节点,然后才能进行转发。多播路由使用生成树协议来避免循环。

多播路由还使用反向路径转发技术来检测和丢弃重复项和循环。

Anycast Routing

Anycast 数据包转发是一种机制,其中多个主机可以具有相同的逻辑地址。当收到发往此逻辑地址的数据包时,它会发送到在路由拓扑中最近的主机。

Anycast routing

Anycast 路由是借助 DNS 服务器完成的。每当收到 Anycast 数据包时,会询问 DNS 将其发送到何处。DNS 提供的是其上配置的最近的 IP 地址。

Unicast Routing Protocols

有两种类型的路由协议可用于路由单播数据包:

Multicast Routing Protocols

链路状态路由协议链路状态协议是一种比距离矢量更复杂的协议。它考虑了网络中所有路由器中链路的状态。此技术帮助路由构建整个网络的一个通用图。然后,所有路由器都会计算出其用于路由目的的最佳路径,例如最早打开最短路径 (OSPF) 和中间系统到中间系统 (ISIS)。

单播路由协议使用图形,而多播路由协议使用树,即生成树来避免循环。最佳树称为最短路径生成树。

  1. DVMRP - 距离矢量多播路由协议

  2. MOSPF - 多播最早打开最短路径

  3. CBT - 基于核心的树

  4. PIM - 跨协议组播

跨协议组播现在普遍使用。它有两种方式:

  1. PIM Dense Mode 此模式使用基于源的树。在诸如 LAN 这样的稠密环境中使用。

  2. PIM Sparse Mode 此模式使用共享树。在诸如 WAN 这样的稀疏环境中使用。

Routing Algorithms

路由算法如下:

Flooding

泛洪是最简单的分组转发方法。当收到一个数据包时,路由器会将其发送到除收到数据包的接口以外的所有接口。这给网络造成了过大的负担,并且大量重复的数据包在网络中游荡。

使用生存时间 (TTL) 可以避免数据包的无限循环。另一种泛洪方法被称为选择性泛洪,它可以减少网络开销。在此方法中,路由器不会泛洪到所有接口,而是选择性地泛洪。

Shortest Path

网络中的路由决策主要基于源和目标之间的成本。跳数在这里起着主要作用。最短路径是一种使用各种算法来决定具有最少跳数的路径的技术。

常见的最短路径算法有:

  1. Dijkstra’s algorithm

  2. Bellman Ford algorithm

  3. Floyd Warshall algorithm

Internetworking

在实际情况下,处于同一管理下的网络通常在地理上分散。可能存在将相同类型的两个不同网络以及不同类型的两个不同网络连接起来的需求。两个网络之间的路由被称为互联网络。

可以根据各种参数(例如,协议、拓扑、第 2 层网络和寻址方案)将网络视为不同。

在互联网络中,路由器相互了解对方的地址以及超出它们的其他地址。它们可以被静态地配置到不同的网络上,也可以通过使用互联网络路由协议进行学习。

routing

在组织或管理中使用的路由协议称为内部网关协议或 IGP。RIP、OSPF 是 IGP 的示例。不同组织或管理之间的路由可能具有外部网关协议,并且只有一种 EGP,即边界网关协议。

Tunneling

如果两个在地理上分离的网络想要相互通信,它们可以在它们之间部署一条专线,或者它们必须通过中间网络传输数据。

隧道是一种机制,两个或更多相同的网络通过传递中间网络复杂性相互通信。隧道配置在两端。

tunneling

当数据从隧道的其中一端输入时,它被标记。然后将此标记数据在中间或中转网络内路由到隧道的另一端。当数据退出隧道时,其标记将被移除并传递到网络的另一部分。

两端似乎直接连接,并且标记使数据在中转网络中传输而不会进行任何修改。

Packet Fragmentation

大多数以太网段的最大传输单元 (MTU) 固定为 1500 字节。数据包的长度可以根据应用程序而多或少。中转路径中的设备还具有硬件和软件功能,这些功能指示该设备可以处理多少数据以及可以处理多大的数据包。

如果数据包大小小于或等于中转网络可以处理的数据包大小,则该数据包以中立的方式进行处理。如果数据包较大,则将其分解为较小的片段,然后转发。这称为数据包分段。每个片段包含相同的目标和源地址,并且很容易通过中转路径路由。在接收端将其再次组装。

如果带有 DF(请勿分段)比特设置设为 1 的数据包到达因其长度而无法处理该数据包的路由器,则丢弃该数据包。

当路由器收到 MF(更多片段)比特设为 1 的数据包时,路由器知道这是一个分段数据包,原始数据包的部分正在传送中。

如果数据包分段太小,则会增加开销。如果数据包分段太大,则中间路由器可能无法处理它,并且可能会被丢弃。

Network Layer Protocols

网络中的每台计算机都有一个 IP 地址,可通过该地址对其进行唯一标识和寻址。IP 地址是第 3 层(网络层)的逻辑地址。此地址在每次计算机重启时都可能更改。计算机在某一时间可以有一个 IP,在另一时间可以有另一个 IP。

Address Resolution Protocol(ARP)

在通信时,主机需要属于同一广播域或网络的目的地计算机的第 2 层(MAC)地址。MAC 地址物理刻录在计算机的网络接口卡 (NIC) 中,并且永远不会更改。

另一方面,公有域的 IP 地址很少更改。如果在出现某些故障的情况下更换了网卡,MAC 地址也会更改。这样,为了进行第 2 层通信,需要对两者进行映射。

arp

为了得知广播域中远程主机的 MAC 地址,希望启动通信的计算机发送一个 ARP 广播消息,询问“谁拥有这个 IP 地址?”由于是广播,网络段(广播域)上的所有主机都会接收并处理此数据包。ARP 数据包包含目标主机的 IP 地址,发送主机希望与此主机通信。当一台主机收到发往自己的 ARP 数据包时,它会用自己的 MAC 地址回复。

一旦主机获取了目标 MAC 地址,它就可以使用第 2 层链路协议与远程主机通信。此 MAC 到 IP 的映射将保存到发送和接收主机的 ARP 缓存中。下次如果需要通信,它们可以直接引用各自的 ARP 缓存。

反向 ARP 是一种机制,其中主机知道远程主机的 MAC 地址,但需要知道 IP 地址才能进行通信。

Internet Control Message Protocol (ICMP)

ICMP 是一种网络诊断和错误报告协议。ICMP 属于 IP 协议套件,并使用 IP 作为载波协议。在构造 ICMP 数据包后,它会封装在 IP 数据包中。因为 IP 本身就是一种尽力而为的不可靠协议,所以 ICMP 也是如此。

任何有关网络的反馈都将发回源主机。如果网络中发生某些错误,将通过 ICMP 报告。ICMP 包含数十个诊断和错误报告消息。

ICMP-echo 和 ICMP-echo-reply 是最常用的 ICMP 消息,用于检查端到端主机的可达性。当主机收到 ICMP-echo 请求时,它会向回发送 ICMP-echo-reply。如果中转网络中出现任何问题,ICMP 都会报告该问题。

Internet Protocol Version 4 (IPv4)

IPv4 是用作 TCP/IP 主机寻址机制的 32 位寻址方案。IP 寻址使 TCP/IP 网络上的每个主机都可以唯一标识。

IPv4 提供了分层寻址方案,可以将其网络划分为子网络,每个子网络都有明确定义的主机数量。IP 地址分为许多类别:

  1. Class A - 它使用第一个八位字节进行网络地址编址,使用最后三个八位字节进行主机地址编址

  2. Class B - 它使用前两个八位字节进行网络地址编址,使用最后两个八位字节进行主机地址编址

  3. Class C - 它使用前三个八位字节进行网络地址编址,使用最后一个八位字节进行主机地址编址

  4. Class D - 与上述三个的分层结构相反,它提供了平面 IP 地址编制方案。

  5. Class E - 它用作实验。

IPv4 还拥有明确定义的地址空间,可作为私有地址(无法在互联网上路由)和公共地址(由 ISP 提供并可以在互联网上路由)使用。

虽然 IP 不是可靠的,但它提供了“尽力而为的交付”机制。

Internet Protocol Version 6 (IPv6)

IPv4 地址枯竭催生了下一代互联网协议版本 6。IPv6 使用 128 位宽地址对节点进行寻址,为未来在整个地球或更远的地方使用提供了充足的地址空间。

IPv6 引入了 Anycast 地址指定,但去掉了广播概念。IPv6 使设备能够自动获取 IPv6 地址并在子网内通信。这种自动配置消除了对动态主机配置协议 (DHCP) 服务器的依赖。这样一来,即使该子网上的 DHCP 服务器宕机,主机也能相互通信。

IPv6 提供了 IPv6 移动性这一新特性。具备移动 IPv6 的机器可以在无需更改其 IP 地址的情况下漫游。

IPv6 仍处于过渡阶段,预计在未来几年将完全取代 IPv4。目前,只有少数网络在运行 IPv6。有一些过渡机制可用于使启用了 IPv6 的网络在 IPv4 上轻松地相互通信和漫游。这些机制包括:

  1. Dual stack implementation

  2. Tunneling

  3. NAT-PT

Transport Layer Introduction

OSI 模型中的下一层被识别为传输层(层 4)。与数据或数据流传输有关的所有模块和程序都归为此层。与所有其他层一样,此层与其远程主机的对等传输层通信。

传输层提供远程主机上两个进程之间的点对点和端到端连接。传输层从上层(即应用程序层)获取数据,然后将其分解为较小的段,对每个字节进行编号,并交给下层(网络层)进行传递。

Functions

  1. 这一层是第一个将应用层提供的信息数据分解为称为段的较小单元的层。它对段中的每个字节编号并维护其记录。

  2. 这层确保必须按发送数据的相同顺序接收数据。

  3. 这层提供主机之间的数据端到端传递,这些主机可以或可能无法属于同一个子网。

  4. 所有打算通过网络进行通信的服务器进程都配备了众所周知的传输服务访问点(TSAP),也称为端口号。

End-to-End Communication

一个主机上的进程通过 TSAP(也称为端口号)识别远程网络上的对等主机。TSAP 定义非常明确,尝试与对等主机通信的进程会预先知道这一点。

TSAP

例如,当 DHCP 客户端想要与远程 DHCP 服务器通信时,它总是请求端口号 67。当 DNS 客户端想要与远程 DNS 服务器通信时,它总是请求端口号 53(UDP)。

两个主要的传输层协议是:

  1. Transmission Control Protocol 它为两个主机提供可靠的通信。

  2. User Datagram Protocol 它为两个主机提供不可靠的通信。

Transmission Control Protocol

传输控制协议 (TCP) 是互联网协议套件中最重要的协议之一。它是通信网络(如互联网)中用于数据传输的最广泛使用的协议。

Features

  1. TCP 是可靠的协议。也就是说,接收者始终向发送者发送有关数据包的肯定或否定确认,以便发送者始终清楚数据包是否到达目的地或是否需要重新发送。

  2. TCP 确保数据以发送顺序到达预定目的地。

  3. TCP 是面向连接的。TCP 要求在发送实际数据之前建立两个远程点之间的连接。

  4. TCP 提供错误检查和恢复机制。

  5. TCP provides end-to-end communication.

  6. TCP 提供流量控制和服务质量。

  7. TCP 以客户/服务器点对点模式工作。

  8. TCP 提供全双工服务器,即它可以执行接收者和发送者的角色。

Header

TCP 报头的长度最少为 20 字节,最长为 60 字节。

TCP Header
  1. Source Port (16-bits) - 它用于标识发送设备上应用程序进程的源端口。

  2. Destination Port (16-bits) - 它用于标识接收设备上应用程序进程的目标端口。

  3. Sequence Number (32-bits) - 会话中某个报文分段中数据字节的序号。

  4. Acknowledgement Number (32-bits) - 当 ACK 标志位被设置时,此数字包含下一个预期数据字节的序号,并用作对前一个已收到的数据的确认。

  5. Data Offset (4-bits) - 这个字段既指 TCP 标头的长度(32 位字),也指当前数据包中数据在整个 TCP 报文分段中的偏移量。

  6. Reserved (3-bits) - 保留供将来使用,并且全部默认为零。

  7. Flags (1-bit each)

NS - 随机数和位由显式拥塞通知信令进程使用。 CWR - 当主机收到带有 ECE 比特位的报文时,它会设置拥塞窗口减小,以确认已收到 ECE。 ECE - 它具有两个含义:如果 SYN 比特位清除为 0,那么 ECE 表示 IP 数据包设置了其 CE(拥塞体验)比特位。如果 SYN 比特位设置为 1,则 ECE 表示该设备具有 ECT 功能。 URG - 它表明紧急指针字段具有重要数据,应予以处理。 ACK - 它表明确认字段具有重要意义。如果 ACK 被清除为 0,它表示数据包不包含任何确认。 PSH - 设置时,它是向接收站发出请求,要求将其(只要一到达)推送(push)到接收应用程序,而不要对其进行缓冲。 RST - 重置标志具有以下特点:它用于拒绝传入连接。它用于拒绝报文分段。它用于重启连接。 SYN - 此标志用于在主机之间建立连接。 FIN - 此标志用于释放连接,此后不再交换数据。由于具有 SYN 和 FIN 标志的数据包具有序号,因此将按正确顺序对其进行处理。

  1. Windows Size - 此字段用于在两个工作站之间进行流量控制,并指示接收方为报文分段分配的缓冲区大小(以字节为单位),即接收方期望接收多少数据。

  2. Checksum - 此字段包含报头、数据和伪报头的校验和。

  3. Urgent Pointer - 如果 URG 标志位设置为 1,它指向紧急数据字节。

  4. Options - 它有助于使用常规报头未涵盖的其他选项。选项字段总是用 32 位字来描述。如果此字段包含的数据少于 32 位,则使用填充来覆盖剩余的位,以达到 32 位边界。

Addressing

两个远程主机之间的 TCP 通信是通过端口号(TSAP)完成的。端口号的范围是 0 到 65535,分为:

  1. 系统端口(0 到 1023)

  2. 用户端口(1024 到 49151)

  3. 私有/动态端口(49152 到 65535)

Connection Management

TCP 通信以服务器/客户端模式工作。客户端发起连接,服务器要么接受要么拒绝连接。使用三向握手来进行连接管理。

TCP handshake

Establishment

客户端发起连接并发送带有序号的报文分段。服务器用自己的序号对其进行确认,并对客户端的报文分段进行 ACK,其值比客户端的序号大 1。客户端在收到其报文分段的 ACK 后,对服务器的响应发送确认。

Release

服务器和客户端都可以发送设置 FIN 标志为 1 的 TCP 报文分段。当接收端通过确认 FIN 来对其进行响应时,该方向的 TCP 通信即关闭,并且连接被释放。

Bandwidth Management

TCP 使用窗口大小的概念来满足带宽管理的需求。窗口大小告知远程端的发送方,此端接收方可以接收的数据字节段数。TCP 使用窗口大小 1 通过慢启动阶段,并在每次成功通信后以指数方式增加窗口大小。

例如,客户端使用窗口大小 2,并发送 2 个字节的数据。当收到此段的确认时,窗口大小会加倍为 4,而下一次发送的段长度将为 4 个数据字节。当收到 4 字节数据段的确认后,客户端将窗口大小设置为 8,依此类推。

如果错失确认(即数据在传输网络中丢失或收到 NACK),则窗口大小将减半,并重新启动慢启动阶段。

Error Control &and Flow Control

TCP 使用端口号来了解它需要将数据段移交到哪个应用程序进程。除此之外,它还使用序列号来与远程主机同步。所有数据段都带有序列号进行发送和接收。发送方通过获得 ACK 时,了解接收方收到的上一个数据段是什么。接收方通过查阅最近收到的数据包的序列号而了解发送方发送的上一个数据段。

如果最近收到的数据段的序列号与接收方预期的序列号不匹配,则该段将被丢弃,并发送回 NACK。如果两个段带有相同的序列号到达,则将比较 TCP 时间戳值以做出决策。

Multiplexing

将两个或多个数据流合并到一个会话中的技术称为多路复用。当 TCP 客户端与服务器初始化连接时,它始终会指代一个明确的端口号,该端口号表示该应用程序进程。客户端本身使用从专用端口号池中随机生成的端口号。

通过使用 TCP 多路复用,一个客户端可以在单个会话中与多个不同的应用程序进程通信。例如,客户端请求一个网页,该网页包含不同类型的数据(HTTP、SMTP、FTP 等),TCP 会话超时被增加,会话将被保持开放更长时间,从而可以避免三路握手开销。

这使用户系统能够通过单个虚拟连接接收多个连接。如果超时时间太长,这些虚拟连接并不适用于服务器。

Congestion Control

当系统中输入大量的数据而系统无法处理时,就会发生拥塞。TCP 通过窗口机制来控制拥塞。TCP 设置窗口大小,告诉另一端发送多少数据段。TCP 可使用三种算法来控制拥塞:

  1. Additive increase, Multiplicative Decrease

  2. Slow Start

  3. Timeout React

Timer Management

TCP 使用不同类型的计时器来控制和管理各种任务:

Keep-alive timer:

  1. 此计时器用于检查连接的完整性和有效性。

  2. 当保活时间到期时,主机将发送探测,以检查连接是否仍然存在。

Retransmission timer:

  1. 此计时器维护已发送数据的有状态会话。

  2. 如果发送的数据确认没有在重传时间内收到,则将重新发送数据段。

Persist timer:

  1. TCP 会话可以由任一主机通过发送窗口大小 0 来暂停。

  2. 要恢复会话,主机需要发送带有较大值窗口大小。

  3. 如果此段从未到达另一端,则两端可能会无限期地等待对方。

  4. 当维持计时器到期时,主机重新发送其窗口大小,以告知另一端。

  5. 维持计时器有助于避免通信中的死锁。

Timed-Wait:

  1. 在释放连接后,任一主机都会等待一个等待时间段以完全终止连接。

  2. 这是为了确保另一端已经收到其连接终止请求的确认。

  3. 等待超时最长为 240 秒(4 分钟)。

Crash Recovery

TCP 是一个非常可靠的协议。它为每个段中发送的字节提供序列号。它提供反馈机制,即当主机收到一个数据包时,它有义务对具有下一期望序列号(如果不是最后一个段)的数据包发送 ACK。

当一个 TCP 服务器在通信途中崩溃并重新开始其进程时,它会向其所有主机发送 TPDU 广播。然后,主机可以发送从未确认且带有的最后一个数据段继续接收。

User Datagram Protocol

用户数据报协议(UDP)是 TCP/IP 协议套件中提供最简单的传输层通信协议。它包含最少的通信机制。UDP 被称为不可靠的传输协议,但它使用 IP 服务,提供尽力而为的传输机制。

在 UDP 中,接收方不会产生收到的数据包的确认,反过来,发送方不会等待所发送数据包的任何确认。这个缺点使此协议不可靠,并且更易于处理。

Requirement of UDP

可能会出现一个问题,为什么我们需要一个不可靠的协议来传输数据?我们在确认数据包与实际数据一起共享大量带宽的情况下部署 UDP。例如,在视频流的情况下,数千个数据包会转发给其用户。对所有数据包进行确认会很麻烦,并且可能会造成大量的带宽浪费。底层 IP 协议的最佳传输机制确保尽力传输其数据包,但即使视频流中丢失了一些数据包,影响也不大并且可以轻松忽略。有时,视频和语音流量中丢包会悄无声息。

Features

  1. 当数据的确认不具有任何重要意义时,将使用 UDP。

  2. UDP 适合于单向传输的数据。

  3. UDP 非常简单,适用于基于查询的通信。

  4. UDP 是无连接的。

  5. UDP 不提供拥塞控制机制。

  6. UDP 不保证有序传输数据。

  7. UDP is stateless.

  8. UDP 是适合于流媒体应用(如 VoIP、多媒体流)的协议。

UDP Header

UDP 报头与它的功能一样简单。

UDP Header

UDP 报头包含四个主要参数:

  1. Source Port - 此 16 位信息用于标识数据包的源端口。

  2. Destination Port - 此 16 位信息用于标识目标计算机上的应用程序层服务。

  3. Length - 长度字段指定 UDP 数据包的整个长度(包括报头)。这是一个 16 位字段,最小值为 8 个字节,即 UDP 报头本身的大小。

  4. Checksum - 此字段存储发送方在发送之前生成的校验和值。IPv4 将此字段作为可选项,因此当校验和字段不包含任何值时,它会被置为 0,并且所有位都被设置为 0。

UDP application

以下是使用 UDP 传输数据的几个应用程序:

  1. Domain Name Services

  2. Simple Network Management Protocol

  3. Trivial File Transfer Protocol

  4. Routing Information Protocol

  5. Kerberos

Application Layer Introduction

应用程序层是 OSI 和 TCP/IP 分层模型中最顶层。由于应用程序层与用户和用户应用程序交互非常重要,因此在两个分层模型中都存在此层。此层适用于参与通信系统的应用程序。

用户可能直接或不直接与应用程序交互。应用程序层是实际通信发起和反射的位置。因为此层位于层堆栈的顶部,所以它不向任何其他层提供服务。应用程序层借助传输层和所有其下层来向远程主机通信或传输其数据。

当应用程序层协议想要与其在远程主机上的对等应用程序层协议通信时,它会将数据或信息传递给传输层。传输层借助下层的所有层完成其余工作。

application layer

在理解应用程序层及其协议时存在歧义。并非每个用户应用程序都可以放入应用程序层。除了与通信系统交互的应用程序外。例如,设计软件或文本编辑器不能被视为应用程序层程序。

另一方面,当我们使用 Web 浏览器时,它实际上使用超文本传输协议 (HTTP) 与网络进行交互。HTTP 是应用程序层协议。

另一个示例是文件传输协议,它帮助用户在网络中传输基于文本或二进制的文件。用户可以在基于 GUI 的软件(如 FileZilla 或 CuteFTP)中使用此协议,并且同一用户可以在命令行模式中使用 FTP。

因此,无论您使用哪种软件,该软件使用的应用程序层中的协议都被考虑在内。DNS 是一个协议,它帮助用户应用程序协议(如 HTTP)完成其工作。

Client Server Model

两个远程应用程序进程主要可以使用两种不同的方式进行通信:

  1. Peer-to-peer: 两个远程进程在同一层级执行,它们使用某些共享资源交换数据。

  2. Client-Server: 一个远程进程充当客户端,并从充当服务器的另一个应用程序进程请求某些资源。

在客户机-服务器模型中,任何进程都可以充当服务器或客户机。它并不是机器的类型、机器的大小或计算能力使其成为服务器;而是提供服务的这一能力使一台机器成为服务器。

client server

系统可以同时作为服务器和客户机。也就是说,一个进程充当服务器,另一个进程充当客户机。客户端和服务器进程都有可能驻留在同一台机器上。

Communication

客户机-服务器模型中的两个进程可以通过多种方式进行交互:

  1. Sockets

  2. Remote Procedure Calls (RPC)

Sockets

在这种模式中,充当服务器的进程使用一个众所周知的(或客户机已知的)端口打开一个套接字,并等待客户端请求到来。充当客户机的第二个进程也打开一个套接字,但它不是等待传入请求,而是“先请求”。

sockets

当服务器收到请求时,它会予以处理。它既可以是信息共享,也可以是资源请求。

Remote Procedure Call

这是一个进程通过执行过程调用与另一个进程进行交互的机制。一个进程(客户机)调用远程主机上的过程。远程主机上的进程被称为服务器。两个进程都被分配了存根。这种通信以以下方式发生:

  1. 客户进程调用客户端存根。它传递所有与其本地程序相关联的参数。

  2. 然后打包(编组)所有参数,并发出系统调用以将它们发送到网络的另一端。

  3. 内核通过网络发送数据,另一端接收数据。

  4. 远程主机将数据传递到服务器存根,服务器存根对数据进行解组。

  5. 将参数传递给过程,然后执行过程。

  6. 结果以相同的方式发送回客户机。

Application Protocols

用户在应用层有多种协议可用。应用层协议可以大致分为两类:

  1. 用户使用的协议。例如电子邮件,即电子邮件。

  2. 帮助和支持用户使用的协议。例如 DNS。

下面描述了应用层中的一些协议:

Domain Name System

域名系统 (DNS) 在客户端服务器模型上工作。它使用 UDP 协议进行传输层通信。DNS 使用基于层次域的命名方案。DNS 服务器配置有完全限定域名 (FQDN) 和映射到其各自互联网协议地址的电子邮件地址。

DNS 服务器要求提供 FQDN,并通过映射的 IP 地址做出响应。DNS 使用 UDP 端口 53。

Simple Mail Transfer Protocol

简单邮件传输协议 (SMTP) 用于在用户之间传输电子邮件。此任务是通过用户正在使用的电子邮件客户端软件(用户代理)来完成的。用户代理帮助用户键入和格式化电子邮件,并在互联网可用之前存储电子邮件。当提交电子邮件发送时,发送过程由邮件传输代理来处理,该代理通常内置在电子邮件客户端软件中。

邮件传输代理使用 SMTP 将电子邮件转发到另一个邮件传输代理(服务器端)。最终用户使用 SMTP 仅发送电子邮件,而服务器通常使用 SMTP 来发送和接收电子邮件。SMTP 使用 TCP 端口号 25 和 587。

客户端软件使用互联网邮件访问协议 (IMAP) 或 POP 协议来接收电子邮件。

File Transfer Protocol

文件传输协议 (FTP) 最广泛用于通过网络进行文件传输。FTP 使用 TCP/IP 进行通信,并使用 TCP 端口 21。FTP 在客户端/服务器模型上工作,其中客户端从服务器请求文件,而服务器将请求的资源发送回客户端。

FTP 使用带外控制,即 FTP 使用 TCP 端口 20 来交换控制信息,而实际数据则通过 TCP 端口 21 发送。

客户端向服务器请求文件。当服务器接收到文件请求时,它为客户端打开一个 TCP 连接并传输文件。传输完成后,服务器关闭连接。对于第二个文件,客户端再次请求,服务器重新打开一个新的 TCP 连接。

Post Office Protocol (POP)

邮局协议版本 3 (POP 3) 是用户代理(客户端电子邮件软件)用于从邮件服务器检索邮件的简单邮件检索协议。

当客户端需要从服务器检索邮件时,它在 TCP 端口 110 上与服务器打开一个连接。然后,用户可以访问其邮件并将其下载到本地计算机。POP3 以两种模式工作。最常见的模式为删除模式,即下载电子邮件到本地计算机后从远程服务器删除电子邮件。第二种模式为保留模式,不会从邮件服务器删除电子邮件,并向用户提供以后在邮件服务器上访问邮件的选项。

Hyper Text Transfer Protocol (HTTP)

超文本传输协议 (HTTP) 是万维网的基础。超文本是组织良好的文档系统,使用超链接来链接文本文档中的页面。HTTP 在客户端服务器模型上工作。当用户想要访问互联网上的任何 HTTP 页面时,用户端的客户端计算机在端口 80 上启动到服务器的 TCP 连接。当服务器接受客户端请求时,客户端被授权访问网页。

为了访问网页,客户端通常使用 Web 浏览器,Web 浏览器负责启动、维护和关闭 TCP 连接。HTTP 是一种无状态协议,这意味着服务器不会保留有关客户端早期请求的任何信息。

HTTP 版本

  1. HTTP 1.0 使用非持久性 HTTP。最多可以向一个 TCP 连接发送一个对象。

  2. HTTP 1.1 使用持久性 HTTP。在此版本中,可以通过一个 TCP 连接发送多个对象。

Network Services

计算机系统和电子化系统帮助人类有效工作并探索不可想象的事情。当这些设备连接在一起形成网络时,功能会得到多倍提升。计算机网络能提供的一些基本服务是。

Directory Services

这些服务是名称与其值的映射,名称的值可能是变量值或固定值。此软件系统有助于存储信息、组织信息并提供用于访问信息的不同方法。

  1. Accounting 在一个组织中,许多用户有其映射到自己的用户名和密码。目录服务提供了以加密形式存储此类信息的方法并在需要时使其可用。

  2. Authentication and Authorization 用户凭据会在登录时和/或定期检查以对用户进行身份验证。用户帐户可以设置成层次结构,并且可以使用授权方案对用户访问资源的情况进行控制。

  3. Domain Name Services DNS 被广泛使用,是互联网工作的基本服务之一。此系统将 IP 地址映射到域名,域名比 IP 地址更容易记住和回忆。因为网络在 IP 地址的帮助下操作,而人类倾向于记住网站名称,所以 DNS 会提供网站 IP 地址,从用户请求网站名称的后端将该 IP 地址映射到其名称。

File Services

文件服务包括通过网络共享和传输文件。

  1. File Sharing 导致网络诞生的原因之一是文件共享。文件共享使其用户可以与其它的用户共享自己的数据。用户可以将文件上传到特定服务器,所有预期用户都可以访问该服务器。作为替代方法,用户可以在自己的计算机上共享其文件并为预期用户提供访问权限。

  2. File Transfer 这是从一台电脑复制或移动文件到另一台电脑或多台电脑的活动,借助于底层网络。网络使其用户能够在该网络中找到其他用户并传输文件。

Communication Services

  1. Email 电子邮件是一种通信方式,是计算机用户不可或缺的东西。这是当今互联网功能的基础。电子邮件系统有一个或多个电子邮件服务器。为其所有用户提供了唯一 ID。当用户向其他用户发送电子邮件时,它实际上是在电子邮件服务器的帮助下在用户之间传输的。

  2. Social Networking 新技术已使技术生活变得社交化。娴熟于计算机的人们可以找到自己认识的人或朋友,可以与之建立联系,可以分享消息、图片和视频。

  3. Internet Chat 互联网聊天提供在两个主机之间即时传输文本的服务。两个人或更多人可以使用基于文本的互联网中继聊天服务来相互通信。如今,语音聊天和视频聊天非常常见。

  4. Discussion Boards 论坛提供了一种连接具有相同利益的多个人群的机制。它使用户能够提出疑问、问题、建议等,所有其他用户都可以看到此类信息。其他人也可以做出回应。

  5. Remote Access 此服务使用户能够访问驻留在远程计算机上的数据。此功能称为远程桌面。这可以通过某些远程设备(例如,移动电话或家用电脑)来完成。

Application Services

这些内容只不过是为用户提供基于网络的服务,例如网络服务、数据库管理和资源共享。

  1. Resource Sharing 为了高效经济地使用资源,网络提供了一种共享资源的方法。这可能包括服务器、打印机和存储媒体等。

  2. Databases 这种应用服务是最重要的服务之一。它存储数据和信息,对其进行处理,并使用查询让用户能够有效地检索数据。数据库帮助组织根据统计数据做出决策。

  3. Web Services 万维网已成为互联网的同义词。它用于连接互联网,并访问互联网服务器提供的文件和信息服务。