计算机网络速查指南



数据通信概述

一个由互连的计算机和计算机外设(如打印机)组成的系统称为计算机网络。这种计算机之间的互连方便了它们之间信息共享。计算机可以通过有线或无线介质相互连接。

计算机网络的分类

计算机网络根据各种因素进行分类。包括:

  • 地理范围
  • 互连性
  • 管理
  • 架构

地理范围

从地理位置上看,网络可以分为以下几类:

  • 它可能跨越您的桌子,在启用蓝牙的设备之间,范围不超过几米。
  • 它可能跨越整栋建筑物,包括连接所有楼层的中间设备。
  • 它可能跨越整个城市。
  • 它可能跨越多个城市或省份。
  • 它可能是一个覆盖全球的网络。

互连性

网络组件可以通过某种方式彼此连接。连接是指逻辑上、物理上或两者兼而有之。

  • 每个设备都可以连接到网络上的任何其他设备,从而构成网状网络。
  • 所有设备都可以连接到单个介质,但地理位置上相互隔离,形成类似总线的结构。
  • 每个设备仅连接到其左右的同级设备,形成线性结构。
  • 所有设备都连接到单个设备,形成星形结构。
  • 所有设备都使用所有上述方式任意连接在一起,形成混合结构。

管理

从管理员的角度来看,网络可以是属于单个自治系统的私有网络,不能访问其物理或逻辑域之外。网络可以是公共的,所有人都可以访问。

网络架构

    计算机网络可以根据其架构的不同分为客户端-服务器、对等或混合等多种类型。

  • 可以有一个或多个系统充当服务器。其他系统作为客户端,请求服务器提供服务。服务器代表客户端接收和处理请求。
  • 两个系统可以点对点连接,或背靠背连接。它们都位于同一级别,称为对等。
  • 可以存在混合网络,它包含上述两种类型的网络架构。

网络应用

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

  • 资源共享,例如打印机和存储设备
  • 通过电子邮件和FTP交换信息
  • 使用Web或互联网共享信息
  • 使用动态网页与其他用户互动
  • IP电话
  • 视频会议
  • 并行计算
  • 即时消息

计算机网络类型

通常,网络是根据其地理范围来区分的。网络可以小到手机与其蓝牙耳机之间的距离,也可以大到互联网本身,覆盖整个地球。

个人局域网 (PAN)

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

Personal Area Network

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

局域网 (LAN)

一个跨越建筑物内部并在单个管理系统下运行的计算机网络通常称为局域网 (LAN)。通常,LAN 覆盖组织的办公室、学校、学院或大学。连接到 LAN 的系统数量可能从至少两个到多达 1600 万个不等。

LAN 为最终用户之间共享资源提供了一种有用的方式。例如打印机、文件服务器、扫描仪和互联网等资源很容易在计算机之间共享。

Local Area Network

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

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

LAN 可以是有线的、无线的,或者两者兼而有之。

城域网 (MAN)

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

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

Metropolitan Area Network

MAN 的主干是高容量和高速光纤。MAN 位于局域网和广域网之间。MAN 为 LAN 到 WAN 或互联网提供上行链路。

广域网 (WAN)

顾名思义,广域网 (WAN) 覆盖范围很广,可能跨越省份甚至整个国家。通常,电信网络是广域网。这些网络为 MAN 和 LAN 提供连接。由于它们配备了非常高速的主干,因此 WAN 使用非常昂贵的网络设备。

Wide Area Network

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

互联网络

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

互联网使用户能够在全球范围内共享和访问海量信息。它使用 WWW、FTP、电子邮件服务、音频和视频流等。在很大程度上,互联网在客户端-服务器模型上运行。

互联网使用非常高速的光纤主干。为了互连各个大陆,光纤铺设在海底,我们称之为海底通信电缆。

互联网广泛部署在使用 HTML 链接页面的万维网服务上,并且可以通过称为 Web 浏览器的客户端软件访问。当用户使用位于世界各地某个 Web 服务器上的某个 Web 浏览器请求页面时,Web 服务器将以正确的 HTML 页面响应。通信延迟非常低。

互联网服务于许多目的,并参与生活的许多方面。其中一些是:

  • 网站
  • 电子邮件
  • 即时消息
  • 博客
  • 社交媒体
  • 营销
  • 网络
  • 资源共享
  • 音频和视频流

局域网技术

让我们简要了解各种 LAN 技术

以太网

以太网是一种广泛部署的 LAN 技术。这项技术是由 Bob Metcalfe 和 D.R. Boggs 于 1970 年发明的。它于 1980 年在 IEEE 802.3 中标准化。

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

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

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

快速以太网

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

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

千兆以太网

在 1995 年推出后,快速以太网仅在千兆以太网推出之前三年才享有其高速地位。千兆以太网提供高达 1000 mbits/秒的速度。IEEE802.3ab 标准化了使用 Cat-5、Cat-5e 和 Cat-6 电缆的 UTP 千兆以太网。IEEE802.3ah 定义了光纤千兆以太网。

虚拟局域网 (VLAN)

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

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

Virtual LAN

在此图中,不同的 VLAN 以不同的颜色代码表示。同一个 VLAN 中的主机,即使连接在同一个交换机上,也无法看到或与不同 VLAN 中的其他主机通信。VLAN 是第二层技术,它与以太网紧密配合工作。要在两个不同的 VLAN 之间路由数据包,需要使用路由器之类的第三层设备。

计算机网络拓扑

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


点对点

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

如果主机在逻辑上点对点连接,则可能有多个中间设备。但是,最终主机不知道底层网络,并且彼此看起来好像直接连接一样。

总线拓扑

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

Bus Topology

共享通道的两端都有线路终端。数据仅沿一个方向发送,一旦到达最远端,终端就会将数据从线路中移除。

星型拓扑

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

  • 第一层设备,例如集线器或中继器
  • 第二层设备,例如交换机或网桥
  • 第三层设备,例如路由器或网关
Star Topology

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

环型拓扑

在环型拓扑中,每台主机都恰好连接到另外两台机器,形成一个环形网络结构。当一台主机尝试与与其不相邻的主机通信或发送消息时,数据会通过所有中间主机传输。要在现有结构中连接更多主机,管理员可能只需要一根额外的电缆。

Ring Topology

任何主机的故障都会导致整个环形网络发生故障。因此,环形网络中的每个连接都是一个故障点。有一些方法使用另一个备份环形网络。

网状拓扑

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

Full Mesh Topology

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

  • **全网状:** 所有主机都与网络中的其他所有主机具有点对点连接。因此,对于每个新主机,都需要 n(n-1)/2 个连接。它在所有网络拓扑中提供最可靠的网络结构。
  • **部分网状:**并非所有主机都与其他所有主机具有点对点连接。主机以某种任意方式相互连接。这种拓扑存在于我们需要为所有主机中的一些主机提供可靠性的情况下。

树型拓扑

也称为层次拓扑,这是目前使用最常见的网络拓扑形式。这种拓扑模仿扩展的星型拓扑,并继承了总线拓扑的特性。

这种拓扑将网络划分为多个网络级别/层。主要是在 LAN 中,网络被分成三种类型的网络设备。最低的是接入层,计算机连接到该层。中间层称为分布层,它充当上层和下层之间的中介。最高层称为核心层,是网络的中心点,即所有节点都从中分叉的树的根。

Tree Topology

所有相邻主机之间都有点对点连接。与总线拓扑类似,如果根节点出现故障,则整个网络也会受到影响,即使它不是单点故障。每个连接都充当故障点,其故障会将网络分成不可达的段。

菊花链

这种拓扑以线性方式连接所有主机。与环型拓扑类似,所有主机都只连接到两个主机,除了端主机。这意味着,如果菊花链中的端主机连接在一起,则它表示环型拓扑。

Daisy Chain Topology

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

混合拓扑

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

Hybrid Topology

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

计算机网络模型

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

分层任务

在网络模型的分层体系结构中,整个网络过程被划分为小型任务。然后,每个小型任务都分配给一个特定的层,该层专门处理该任务。每一层只做特定工作。

在分层通信系统中,主机的某一层处理由其在远程主机上同一级别的对等层执行或要执行的任务。任务是由最低层或最高层启动的。如果任务是由最高层启动的,则将其传递给下一层以进行进一步处理。下层做同样的事情,它处理任务并传递给下层。如果任务是由最低层启动的,则采用反向路径。

Layered Tasks

每一层都将所有程序、协议和方法组合在一起,这些程序、协议和方法是它执行其任务部分所需的内容。所有层都通过封装头和尾来识别它们的对等层。

OSI 模型

开放系统互联 (OSI) 是所有通信系统的开放标准。OSI 模型由国际标准化组织 (ISO) 建立。该模型有七层:

OSI Model
  • **应用层:** 此层负责向应用程序用户提供接口。此层包含直接与用户交互的协议。

  • **表示层:** 此层定义应如何以远程主机的本机格式呈现数据在主机的本机格式。

  • **会话层:** 此层维护远程主机之间的会话。例如,一旦完成用户名/密码身份验证,远程主机就会在一段时间内维护此会话,并且在那段时间内不会再次请求身份验证。

  • **传输层:** 此层负责主机之间的端到端交付。

  • **网络层:** 此层负责地址分配和网络中主机的唯一寻址。

  • **数据链路层:** 此层负责从线路读取和写入数据以及将数据写入线路。在此层检测链路错误。

  • **物理层:** 此层定义硬件、布线布线、功率输出、脉冲速率等。

互联网模型

互联网使用 TCP/IP 协议套件,也称为互联网套件。这定义了包含四层体系结构的互联网模型。OSI 模型是通用通信模型,但互联网模型是互联网用于所有通信的方式。互联网独立于其底层网络体系结构,其模型也是如此。该模型具有以下几层:

Internet Model
  • **应用层:** 此层定义允许用户与网络交互的协议。例如,FTP、HTTP 等。

  • **传输层:** 此层定义数据应如何在主机之间传输。此层的主要协议是传输控制协议 (TCP)。此层确保交付到主机之间的数据是有序的,并负责端到端交付。

  • **网络层:** 互联网协议 (IP) 在此层工作。此层促进主机寻址和识别。此层定义路由。

  • **链路层:** 此层提供发送和接收实际数据的机制。与 OSI 模型的对应层不同,此层独立于底层网络体系结构和硬件。

计算机网络安全

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

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

  • 中断

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

  • 隐私泄露

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

  • 完整性

    这种类型的威胁包括对通信原始上下文进行任何更改或修改。攻击者拦截并接收发送者发送的数据,然后攻击者修改或生成虚假数据并发送给接收者。接收者收到数据时,认为它是原始发送者发送的。

  • 真实性

    此威胁发生在攻击者或安全违规者伪装成真实用户,并访问资源或与其他真实用户通信时。

当今世界没有任何技术能够提供100%的安全。但是,可以在数据在非安全网络或互联网上传输时采取措施来保护数据。最广泛使用的技术是密码学。

Cryptography

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

  • 秘密密钥

  • 公开密钥

  • 消息摘要

秘密密钥加密

发送方和接收方都拥有一个秘密密钥。此秘密密钥用于在发送方端加密数据。数据加密后,将其发送到公共域中的接收方。由于接收方知道并拥有秘密密钥,因此可以轻松解密加密的数据包。

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

公开密钥加密

在此加密系统中,每个用户都有自己的秘密密钥,并且它不在共享域中。秘密密钥绝不会在公共域中公开。除了秘密密钥外,每个用户还拥有自己的公开密钥。公开密钥始终公开,发送方使用它来加密数据。当用户收到加密数据时,他可以使用自己的秘密密钥轻松解密它。

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

消息摘要

在这种方法中,不发送实际数据,而是计算并发送哈希值。另一端用户计算其自身的哈希值,并将其与刚刚接收到的哈希值进行比较。如果两个哈希值匹配,则接受;否则拒绝。

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

物理层 - 简介

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

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

信号

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

  • 数字信号

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

  • 模拟信号

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

传输损伤

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

  • 衰减

    为了让接收器准确地解释数据,信号必须足够强。当信号通过介质时,它往往会变弱。随着距离的增加,它会失去强度。

  • 色散

    当信号通过介质传输时,它往往会扩散并重叠。色散量取决于使用的频率。

  • 延迟失真

    信号以预定义的速度和频率通过介质发送。如果信号速度和频率不匹配,则信号可能以任意方式到达目的地。在数字媒体中,这一点非常关键,因为某些比特到达的时间早于先前发送的比特。

  • 噪声

    模拟或数字信号中的随机干扰或波动被称为信号噪声,它可能会扭曲所携带的实际信息。噪声可以分为以下几类:

    • 热噪声

      热量会激发介质的电子导体,这可能会在介质中引入噪声。在一定程度上,热噪声是不可避免的。

    • 互调

      当多个频率共享一个介质时,它们的干扰会导致介质中的噪声。如果两个不同的频率共享一个介质,并且其中一个频率强度过大或组件本身运行不正常,则生成的频率可能无法按预期传递。

    • 串扰

      当外部信号进入介质时,就会发生这种噪声。这是因为一种介质中的信号会影响第二种介质中的信号。

    • 脉冲噪声

      这种噪声是由于不规则的干扰引起的,例如雷电、电力、短路或组件故障。数字数据主要受这种噪声的影响。

传输介质

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

  • 导引介质

    所有通信线/电缆都是导引介质,例如UTP、同轴电缆和光纤。在这种介质中,发送方和接收方直接连接,信息通过它发送(引导)。

  • 非导引介质

    无线或开放空间被称为非导引介质,因为发送方和接收方之间没有连接。信息在空中传播,任何人都可以收集信息,包括实际接收者。

信道容量

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

  • 带宽:底层介质的物理限制。

  • 错误率:由于噪声导致信息接收错误。

  • 编码:用于信号传输的电平数。

多路复用

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

交换

交换是一种机制,通过该机制,从源发送到目的地的数 据/信息没有直接连接。网络具有互连设备,这些设备接收来自直接连接的源的数据,存储数据,分析数据,然后转发到最接近目的地的下一个互连设备。

交换可以分为:

Switching

数字传输

数据或信息可以以两种方式存储,模拟和数字。为了让计算机使用数据,它必须采用离散的数字形式。与数据类似,信号也可以采用模拟和数字形式。为了数字传输数据,需要先将其转换为数字形式。

数/数转换

本节介绍如何将数字数据转换为数字信号。这可以通过两种方式完成:线路编码和分组编码。对于所有通信,线路编码都是必要的,而分组编码是可选的。

线路编码

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

Line Coding

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

Line Coding

单极性编码

单极性编码方案使用单个电压电平来表示数据。在这种情况下,要表示二进制1,则传输高电压;要表示0,则不传输电压。它也称为单极性非归零,因为没有静止状态,即它要么表示1,要么表示0。

UniPolar NRZ Encoding

极性编码

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

  • 极性非归零 (Polar NRZ)

    它使用两个不同的电压电平来表示二进制值。通常,正电压表示1,负电压表示0。它也是NRZ,因为没有静止状态。

    NRZ方案有两个变体:NRZ-L和NRZ-I。

    Unipolar NRZ

    NRZ-L在遇到不同的位时改变电压电平,而NRZ-I在遇到1时改变电压。

  • 归零 (RZ)

    NRZ的问题是,如果发送方和接收方的时钟不同步,接收方无法确定一位何时结束以及下一位何时开始。

    Return-to-Zero

    RZ使用三个电压电平:正电压表示1,负电压表示0,零电压表示无。信号在位期间变化,而不是在位之间变化。

  • 曼彻斯特编码

    这种编码方案是RZ和NRZ-L的组合。位时间分为两半。它在位的中间传输,并在遇到不同的位时改变相位。

  • 差分曼彻斯特编码

    这种编码方案是RZ和NRZ-I的组合。它也在位的中间传输,但只在遇到1时改变相位。

双极性编码

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

分组编码

为了确保接收到的数据帧的准确性,使用了冗余位。例如,在偶校验中,添加一个校验位以使帧中1的计数为偶数。这样,原始位数就会增加。这称为分组编码。

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

  • 划分,
  • 替换
  • 组合。

完成分组编码后,对其进行线路编码以进行传输。

模拟/数字转换

麦克风产生模拟语音,摄像机产生模拟视频,这些都被视为模拟数据。为了通过数字信号传输此模拟数据,我们需要模拟到数字转换。

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

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

  • 采样
  • 量化
  • 编码。

采样

Sampling

模拟信号以 T 时间间隔进行采样。采样中最重要的因素是模拟信号的采样率。根据奈奎斯特采样定理,采样率必须至少为信号最高频率的两倍。

量化

Quantization

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

编码

Encoding

在编码过程中,每个近似值都被转换为二进制格式。

传输模式

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

并行传输

Parallel Transmission

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

串行传输

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

Serial Transmission

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

异步串行传输

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

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

同步串行传输

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

接收器负责识别并将位分离成字节。同步传输的优点是速度快,并且不像异步传输那样需要额外的报头和页脚位。

模拟传输

为了通过模拟介质发送数字数据,需要将其转换为模拟信号。根据数据格式,可能有两种情况。

带通:使用滤波器来滤波并通过感兴趣的频率。带通是一段可以通过滤波器的频率。

低通:低通滤波器只允许低频信号通过。

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

数字到模拟转换

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

模拟信号的特征在于其幅度、频率和相位。数字到模拟转换有三种类型:

  • 幅度键控

    在这种转换技术中,模拟载波信号的幅度被修改以反映二进制数据。

    Amplitude Shift Keying

    当二进制数据表示数字 1 时,幅度保持不变;否则设置为 0。频率和相位与原始载波信号相同。

  • 频率键控

    在这种转换技术中,模拟载波信号的频率被修改以反映二进制数据。

    Frequency Shift Keying

    此技术使用两个频率 f1 和 f2。其中一个,例如 f1,被选择来表示二进制数字 1,另一个被用来表示二进制数字 0。载波波的幅度和相位保持不变。

  • 相位键控

    在这种转换方案中,原始载波信号的相位被改变以反映二进制数据。

    Phase Shift Keying

    遇到新的二进制符号时,信号的相位会发生变化。原始载波信号的幅度和频率保持不变。

  • 正交相移键控

    QPSK 改变相位以同时反映两个二进制数字。这是在两个不同的相位中完成的。主要的二进制数据流被平均分成两个子流。串行数据在两个子流中都被转换为并行数据,然后每个流使用 NRZ 技术转换为数字信号。之后,两个数字信号合并在一起。

模拟到模拟转换

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

Analog Modulation
  • 调幅

    在这种调制中,载波信号的幅度被修改以反映模拟数据。

    Amplitude Modulation

    调幅是通过乘法器实现的。调制信号(模拟数据)的幅度乘以载波频率的幅度,然后反映模拟数据。

    载波信号的频率和相位保持不变。

  • 调频

    在这种调制技术中,载波信号的频率被修改以反映调制信号(模拟数据)电压水平的变化。

    Frequency Modulation

    载波信号的幅度和相位没有改变。

  • 调相

    在这种调制技术中,载波信号的相位被调制以反映模拟数据信号电压(幅度)的变化。

    Phase Modulation

    调相实际上与调频相似,但在调相中,载波信号的频率不会增加。载波信号的频率发生变化(变密和变疏),以反映调制信号幅度电压的变化。

传输介质

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

磁性介质

甚至在网络诞生之前,将数据从一台计算机传输到另一台计算机最方便的方法之一是将其保存到某种存储介质上,然后将物理介质从一个站点传输到另一个站点。虽然在当今高速互联网时代,这似乎是一种老式的方法,但是当数据量巨大时,磁性介质就会派上用场。

例如,一家银行必须处理和传输大量的客户数据,出于安全原因并在不确定灾难发生时保护数据,银行会将其备份存储在某个地理位置遥远的地方。如果银行需要存储其庞大的备份数据,那么通过互联网传输是不可行的。广域网链路可能不支持如此高的速度。即使支持,成本也太高,无法承受。

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

双绞线

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

双绞线有两种类型:

  • 屏蔽双绞线 (STP) 电缆

  • 非屏蔽双绞线 (UTP) 电缆

STP 电缆带有包裹在金属箔中的双绞线。这使得它对噪声和串扰更加不敏感。

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

同轴电缆

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

Coaxial Cable

由于其结构,同轴电缆能够比双绞线携带更高的频率信号。缠绕结构为其提供了良好的抗噪声和串扰能力。同轴电缆提供高达 450 Mbps 的高带宽速率。

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

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

电力线

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

由于电力线广泛部署,PLC 可以使所有带电设备都可控和可监控。PLC 以半双工方式工作。

PLC 有两种类型:

  • 窄带 PLC

  • 宽带 PLC

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

宽带 PLC 提供高达数百 Mbps 的更高数据速率,并在更高的频率(1.8 – 250 MHz)下工作。它们不能像窄带 PLC 那样扩展。

光纤

光纤利用光的特性。当光线以临界角入射时,它往往会以 90 度角折射。光纤利用了这一特性。光纤电缆的核心由高质量的玻璃或塑料制成。从一端发出光线,它通过光纤传播,在另一端,光检测器检测光流并将其转换为电数据。

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

Fiber Optics

光纤也具有单向和双向功能。连接和访问光纤需要使用特殊类型的连接器,例如用户通道 (SC)、直插式 (ST) 或 MT-RJ。

无线传输

无线传输是一种非导向介质形式。无线通信无需在两个或多个设备之间建立物理链路,即可进行无线通信。无线信号在空中传播,并由相应的接收天线接收和解释。

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

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

Electromagnetic Spectrum

无线电传输

无线电频率易于产生,并且由于其波长较长,因此可以穿透墙壁和类似的结构。无线电波的波长范围为 1 毫米至 100,000 公里,频率范围为 3 Hz(极低频)至 300 GHz(极高频)。无线电频率细分为六个频段。

低频无线电波可以穿透墙壁,而高频无线电波则可以直线传播并反射回来。低频波的功率随着距离的增加而急剧下降。高频无线电波功率更大。

VLF、LF、MF 等低频段可以在地面上传播达 1000 公里,在地球表面上方传播。

Radio wave - grounded

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

Radio wave - Ionosphere

微波传输

高于 100 MHz 的电磁波倾向于直线传播,可以通过将这些波束指向特定站点来发送信号。由于微波直线传播,发送器和接收器必须严格对准视线。

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

Personal Area Network

微波天线集中波束,形成波束。如上图所示,多个天线可以对准以达到更远的距离。微波频率较高,不会像墙壁那样的障碍物那样穿透。

微波传输高度依赖于天气条件和使用的频率。


红外传输

红外波位于可见光谱和微波之间。其波长为 700 纳米至 1 毫米,频率范围为 300 GHz 至 430 THz。

红外波用于非常短距离的通信目的,例如电视及其遥控器。红外线直线传播,因此本质上是定向的。由于高频范围,红外线无法穿透墙壁之类的障碍物。

光传输

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

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

Light Transmission

激光器充当 Tx(发射器),光电检测器充当 Rx(接收器)。

激光器无法穿透墙壁、雨水和浓雾等障碍物。此外,激光束会因风、大气温度或路径中温度变化而变形。

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

多路复用

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

可以通过空气(无线电频率)、物理介质(电缆)和光(光纤)进行通信。所有介质都能够进行多路复用。

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

频分多路复用

当载波为频率时,使用 FDM。FDM 是一种模拟技术。FDM 将频谱或载波带宽划分为逻辑信道,并为每个用户分配一个信道。每个用户都可以独立使用信道频率,并拥有其独占访问权。所有信道都以不相互重叠的方式划分。信道之间由保护带隔开。保护带是任何信道都不使用的频率。

Frequency Division Multiplexing

时分多路复用

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

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

Time Division Multiplexing

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

波分多路复用

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

Wavelength Division Multiplexing

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

码分多路复用

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

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

网络交换

交换是将从一个端口进入的数据包转发到通往目的地的端口的过程。当数据进入端口时,称为入端口,当数据离开端口或出去时,称为出端口。通信系统可能包括许多交换机和节点。在广义上,交换可以分为两大类

  • 无连接:数据根据转发表转发。不需要预先握手,确认是可选的。

  • 面向连接:在将要转发到目的地的交换数据之前,需要预先建立两个端点之间路径上的电路。然后在该电路上传输数据。传输完成后,可以保留电路以供将来使用,也可以立即关闭电路。

电路交换

当两个节点通过专用通信路径相互通信时,称为电路交换。需要预先指定的路由,数据将通过该路由传输,并且不允许其他数据。在电路交换中,要传输数据,必须建立电路才能进行数据传输。

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

  • 建立电路

  • 传输数据

  • 断开电路

Circuit Switching

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

报文交换

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

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

Message Switching

这项技术被认为是电路交换的替代方案。在电路交换中,整个路径仅被两个实体阻塞。报文交换已被分组交换取代。报文交换具有以下缺点

  • 传输路径中的每个交换机都需要足够的存储空间来容纳整个报文。

  • 由于存储转发技术和等待(直到资源可用),报文交换非常慢。

  • 报文交换不是流媒体和实时应用程序的解决方案。

分组交换

报文交换的缺点导致了分组交换的想法。整个报文被分解成较小的块,称为数据包。交换信息添加到每个数据包的报头中,并独立传输。

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

Packet Switching

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

数据链路层介绍

数据链路层是OSI分层模型的第二层。这一层是最复杂的一层之一,具有复杂的功能和责任。数据链路层隐藏了底层硬件的细节,并向上一层呈现自身为通信介质。

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

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

数据链路层有两个子层

  • 逻辑链路控制 (Logical Link Control): 处理协议、流量控制和差错控制

  • 媒体访问控制 (Media Access Control): 处理媒体的实际控制

数据链路层的功能

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

  • 帧定界 (Framing)

    数据链路层从网络层接收分组,并将它们封装成帧。然后,它逐位在硬件上发送每个帧。在接收端,数据链路层从硬件接收信号并将它们组装成帧。

  • 寻址 (Addressing)

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

  • 同步 (Synchronization)

    当数据帧在链路上发送时,为了进行传输,两台机器必须同步。

  • 差错控制 (Error Control)

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

  • 流量控制 (Flow Control)

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

  • 多路访问 (Multi-Access)

    当共享链路上的主机尝试传输数据时,发生冲突的概率很高。数据链路层提供诸如CSMA/CD之类的机制,以实现多个系统之间访问共享媒体的能力。

差错检测和纠正 (Error Detection and Correction)

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

数据链路层使用一些差错控制机制来确保帧(数据比特流)以一定的精度进行传输。但是,要了解如何控制错误,必须了解可能发生哪些类型的错误。

错误类型 (Types of Errors)

可能有三种类型的错误:

  • 单比特错误 (Single bit error)

    Single bit error

    在一个帧中,只有一个位(尽管位置可能不同)被破坏。

  • 多比特错误 (Multiple bits error)

    Multiple bits error

    接收到的帧中有多个位处于损坏状态。

  • 突发错误 (Burst error)

    Burst error

    帧中包含多个连续损坏的位。

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

  • 差错检测 (Error detection)

  • 差错纠正 (Error correction)

差错检测 (Error Detection)

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

奇偶校验 (Parity Check)

与原始位一起发送一个额外的位,使1的个数在偶校验的情况下为偶数,在奇校验的情况下为奇数。

发送方在创建帧时计算其中1的个数。例如,如果使用偶校验并且1的个数为偶数,则添加值为0的一个位。这样1的个数仍然为偶数。如果1的个数为奇数,则添加值为1的一个位以使其为偶数。

Even Parity

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

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

循环冗余校验 (Cyclic Redundancy Check, CRC)

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

CRC

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

差错纠正 (Error Correction)

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

  • 后向纠错 (Backward Error Correction) 当接收方检测到接收到的数据中存在错误时,它会请求发送方重新传输数据单元。

  • 前向纠错 (Forward Error Correction) 当接收方检测到接收到的数据中存在一些错误时,它会执行纠错码,这有助于它自动恢复并纠正某些类型的错误。

第一种,后向纠错,很简单,只有在重新传输代价不高的情况下才能有效使用。例如,光纤。但在无线传输的情况下,重新传输的代价可能过高。在这种情况下,使用前向纠错。

为了纠正数据帧中的错误,接收方必须准确知道帧中哪个位已损坏。为了定位错误位,冗余位用作奇偶校验位进行错误检测。例如,我们采用ASCII字(7位数据),那么我们可能需要8种信息:前七位告诉我们哪个位出错,还有一个位告诉我们没有错误。

对于m个数据位,使用r个冗余位。r位可以提供2r种信息组合。在m+r位码字中,r位本身也可能被损坏。因此,使用的r位数必须告知m+r位位置以及无错误信息,即m+r+1。

Required bits

数据链路控制和协议 (Data-link Control and Protocols)

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

流量控制 (Flow Control)

当数据帧(第二层数据)通过单个介质从一个主机发送到另一个主机时,需要发送方和接收方以相同的速度工作。也就是说,发送方以接收方可以处理和接受数据的速度发送数据。如果发送方或接收方的速度(硬件/软件)不同会怎样?如果发送方发送速度过快,接收方可能会过载(超载),并且数据可能会丢失。

可以使用两种类型的机制来控制流量:

  • 停等协议 (Stop and Wait)

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

    Stop and Wait
  • 滑动窗口 (Sliding Window)

    在这种流量控制机制中,发送方和接收方就应发送确认的多个数据帧的数量达成一致。正如我们所了解的,停等流量控制机制浪费资源,该协议试图尽可能多地利用底层资源。

差错控制 (Error Control)

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

差错控制机制的要求

  • 差错检测 (Error detection) - 发送方和接收方(两者或任何一方)必须确定传输过程中存在一些错误。

  • 肯定确认 (Positive ACK) - 当接收方收到正确的帧时,应确认它。

  • 否定确认 (Negative ACK) - 当接收方收到损坏的帧或重复的帧时,它会向发送方发送NACK,发送方必须重新传输正确的帧。

  • 重传 (Retransmission): 发送方维护一个时钟并设置一个超时周期。如果先前传输的数据帧的确认在超时之前没有到达,则发送方会重新传输该帧,认为该帧或其确认在传输过程中丢失了。

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

  • 停等 ARQ (Stop-and-wait ARQ)

    Stop and Wait ARQ

    在停等 ARQ 中可能发生以下转换:

    • 发送方维护一个超时计数器。
    • 发送帧时,发送方启动超时计数器。
    • 如果确认及时到达,发送方将传输队列中的下一个帧。
    • 如果确认没有及时到达,发送方会假设帧或其确认在传输过程中丢失了。发送方重新传输帧并启动超时计数器。
    • 如果收到否定确认,发送方将重新传输该帧。
  • Go-Back-N ARQ

    停等 ARQ 机制并没有充分利用资源。当收到确认时,发送方处于空闲状态且什么也不做。在Go-Back-N ARQ方法中,发送方和接收方都维护一个窗口。

    Go-back-n ARQ

    发送窗口大小使发送方能够发送多个帧而无需接收先前帧的确认。接收窗口使接收方能够接收多个帧并确认它们。接收方跟踪传入帧的序列号。

    当发送方发送窗口中的所有帧时,它会检查已收到肯定确认的序列号。如果所有帧都得到肯定确认,则发送方发送下一组帧。如果发送方发现它已收到否定确认 (NACK) 或未收到特定帧的任何确认 (ACK),则它会重新传输所有未收到肯定确认 (ACK) 的帧之后的帧。

  • 选择重传 ARQ

    在 Go-back-N ARQ 中,假设接收方没有为其窗口大小提供任何缓冲区空间,并且必须在其到达时处理每一帧。这强制发送方重新传输所有未被确认的帧。

    在选择重传 ARQ 中,接收方在跟踪序列号的同时,将帧缓冲在内存中,并仅对丢失或损坏的帧发送 NACK。

    在这种情况下,发送方只发送收到 NACK 的数据包。

网络层介绍

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

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

第 3 层功能

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

  • 寻址设备和网络。

  • 填充路由表或静态路由。

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

  • 两个不同子网之间的互连。

  • 尽力交付数据包到目的地。

  • 提供面向连接和无连接机制。

网络层特性

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

  • 服务质量管理

  • 负载均衡和链路管理

  • 安全

  • 不同协议和具有不同模式的子网的相互关系。

  • 在物理网络设计之上的不同逻辑网络设计。

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

互联网协议是广泛采用和部署的网络层协议,有助于通过互联网在端到端设备之间进行通信。它有两种类型:IPv4,几十年来一直统治着世界,但现在正在耗尽地址空间;IPv6 是为了取代 IPv4 而创建的,希望也能减轻 IPv4 的局限性。

网络寻址

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

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

存在多种类型的网络地址:

  • IP

  • IPX

  • AppleTalk

我们在这里讨论 IP,因为它是我们现在实际使用的唯一一种。

Network Addressing

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

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

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

  • 到达网络的方法

路由器在收到转发请求后,将数据包转发到其通往目的地的下一个跃点(相邻路由器)。

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

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

  • 单播(发往一台主机)

  • 多播(发往组)

  • 广播(发往所有)

  • 组播(发往最近的一台)

默认情况下,路由器从不转发广播流量。多播流量采用特殊处理,因为它通常是具有最高优先级的视频流或音频。组播类似于单播,只是当多个目的地可用时,数据包被传递到最近的目的地。

网络层路由

当设备有多条路径可以到达目的地时,它总是选择一条路径,并优先于其他路径。这个选择过程称为路由。路由由称为路由器的特殊网络设备完成,也可以通过软件进程完成。基于软件的路由器功能和范围有限。

路由器始终配置有一些默认路由。默认路由告诉路由器,如果找不到特定目的地的路由,则将数据包转发到哪里。如果存在多条路径可以到达相同的目的地,路由器可以根据以下信息做出决定:

  • 跃点计数

  • 带宽

  • 度量

  • 前缀长度

  • 延迟

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

单播路由

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

Unicast routing

广播路由

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

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

  • 路由器创建一个数据包,然后将其逐个发送到每个主机。在这种情况下,路由器创建具有不同目标地址的单个数据包的多个副本。所有数据包都作为单播发送,但由于它们发送到所有主机,因此模拟路由器正在广播。

    此方法会消耗大量带宽,并且路由器必须知道每个节点的目标地址。

  • 其次,当路由器接收到要广播的数据包时,它只是将其从所有接口中泛洪出去。所有路由器的配置方式相同。

    Broadcast routing

    此方法易于路由器的 CPU 处理,但可能会导致从对等路由器接收重复数据包的问题。

    反向路径转发是一种技术,其中路由器预先知道其应该接收广播的前驱。此技术用于检测和丢弃重复项。

多播路由

多播路由是广播路由的一种特殊情况,具有显著的区别和挑战。在广播路由中,即使节点不希望接收数据包,也会将其发送到所有节点。但在多播路由中,数据仅发送到希望接收数据包(或流)的节点。

Multicast routing

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

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

组播路由

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

Anycast routing

组播路由借助 DNS 服务器完成。每当接收到组播数据包时,都会向 DNS 查询将其发送到哪里。DNS 提供在其上配置的最近的 IP 地址。

单播路由协议

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

  • 距离矢量路由协议

    距离矢量是一种简单的路由协议,它根据源和目标之间的跃点数来做出路由决策。跃点数较少的路由被认为是最佳路由。每个路由器都会将其最佳路由集通告给其他路由器。最终,所有路由器都根据其对等路由器的通告构建其网络拓扑。

    例如,路由信息协议 (RIP)。

  • 链路状态路由协议

    链路状态协议比距离矢量协议略微复杂。它考虑网络中所有路由器的链路状态。此技术有助于路由器构建整个网络的公共图。然后,所有路由器都计算其用于路由目的的最佳路径。例如,开放最短路径优先 (OSPF) 和中间系统到中间系统 (ISIS)。

多播路由协议

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

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

  • MOSPF - 多播开放最短路径优先

  • CBT - 基于核心树

  • PIM - 协议无关多播

现在通常使用协议无关多播。它有两种类型:

  • PIM 密集模式

    此模式使用基于源的树。它用于密集环境,例如 LAN。

  • PIM 稀疏模式

    此模式使用共享树。它用于稀疏环境,例如 WAN。

路由算法

路由算法如下:

泛洪

泛洪是最简单的分组转发方法。当接收到数据包时,路由器会将其发送到除接收数据包的接口之外的所有接口。这会给网络带来过多的负担,并导致大量重复的数据包在网络中漫游。

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

最短路径

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

常见的最短路径算法有:

  • 迪杰斯特拉算法

  • 贝尔曼-福德算法

  • 弗洛伊德-沃歇尔算法

互连

在现实世界中,同一管理下的网络通常在地理上分散。可能需要连接相同类型和不同类型的两个不同网络。两个网络之间的路由称为互连。

网络可以根据各种参数被认为是不同的,例如协议、拓扑、第 2 层网络和寻址方案。

在互连中,路由器知道彼此的地址以及它们以外的地址。它们可以静态配置到不同的网络上,也可以使用互连路由协议来学习。

Routing

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

隧道

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

隧道技术是一种允许两个或多个相同网络通过绕过中间网络复杂性来相互通信的机制。隧道配置在两端进行。

Tunneling

当数据从隧道的一端进入时,它会被标记。然后,这个标记数据在中间或中转网络内路由,以到达隧道的另一端。当数据离开隧道时,其标记会被移除并传递到网络的另一部分。

两端看起来好像直接连接在一起,而标记使数据能够在中转网络中传输而无需任何修改。

数据包分片

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

如果数据包大小小于或等于中转网络可以处理的数据包大小,则对其进行中性处理。如果数据包较大,则将其分解成较小的片段,然后转发。这称为数据包分片。每个片段都包含相同的目标地址和源地址,并能够轻松地通过中转路径路由。在接收端,它会被重新组装。

如果带有设置为 1 的 DF(禁止分片)位的包到达由于其长度而无法处理该包的路由器,则该包将被丢弃。

当路由器接收到的数据包的 MF(更多片段)位设置为 1 时,路由器就知道这是一个分片数据包,并且原始数据包的部分内容正在传输中。

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

网络层协议

网络中的每台计算机都有一个 IP 地址,通过该地址可以唯一地识别和寻址它。IP 地址是第 3 层(网络层)逻辑地址。此地址可能在每次计算机重新启动时都会更改。一台计算机在一个时间实例可能拥有一个 IP,而在另一个时间实例可能拥有另一个 IP。

地址解析协议 (ARP)

在通信过程中,主机需要目标机器的第 2 层 (MAC) 地址,该地址属于同一个广播域或网络。MAC 地址是物理刻录在机器的网络接口卡 (NIC) 中的,它永远不会改变。

另一方面,公共域中的 IP 地址很少更改。如果由于某些故障而更改了 NIC,则 MAC 地址也会更改。这样,为了进行第 2 层通信,需要在这两者之间进行映射。

ARP Mechanism

为了知道广播域中远程主机的 MAC 地址,想要发起通信的计算机会发送一个 ARP 广播消息,询问:“谁拥有此 IP 地址?” 因为它是一个广播,所以网络段(广播域)上的所有主机都会接收此数据包并对其进行处理。ARP 数据包包含目标主机的 IP 地址,发送主机希望与其通信。

当主机接收到发往它的 ARP 数据包时,它会回复自己的 MAC 地址。主机获得目标 MAC 地址后,就可以使用第 2 层链路协议与远程主机通信。此 MAC 到 IP 的映射将保存到发送和接收主机的 ARP 缓存中。下次如果他们需要通信,他们可以直接参考各自的 ARP 缓存。

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

互联网控制消息协议 (ICMP)

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

任何关于网络的反馈都会发送回原始主机。如果网络中发生任何错误,则会通过 ICMP 报告。ICMP 包含数十条诊断和错误报告消息。

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

互联网协议版本 4 (IPv4)

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

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

  • A 类 - 它使用第一个八位字节作为网络地址,使用最后三个八位字节作为主机地址

  • B 类 - 它使用前两个八位字节作为网络地址,使用最后两个作为主机地址

  • C 类 - 它使用前三个八位字节作为网络地址,使用最后一个作为主机地址

  • D 类 - 与上述三个层次结构相比,它提供平面 IP 寻址方案。

  • E 类 - 用作实验用途。

IPv4 还具有明确定义的地址空间,可用作私有地址(在互联网上不可路由)和公共地址(由 ISP 提供,可在互联网上路由)。

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

互联网协议版本 6 (IPv6)

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

IPv6 引入了组播寻址,但取消了广播的概念。IPv6 使设备能够自动获取 IPv6 地址并在该子网内进行通信。这种自动配置消除了对动态主机配置协议 (DHCP) 服务器的依赖性。这样,即使该子网上的 DHCP 服务器已关闭,主机也可以相互通信。

IPv6 提供了 IPv6 移动性的新功能。配备移动 IPv6 的机器可以在无需更改其 IP 地址的情况下四处漫游。

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

  • 双协议栈实现
  • 隧道
  • NAT-PT

传输层介绍

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

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

功能

  • 这是第一层将应用程序层提供的信息数据分解成较小的单元,称为段。它对段中的每个字节进行编号并维护其计数。

  • 此层确保数据必须按发送顺序接收。

  • 此层提供主机之间的数据端到端交付,这些主机可能属于同一个子网,也可能不属于同一个子网。

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

端到端通信

一个主机上的进程通过 TSAP(也称为端口号)识别其在远程网络上的对等主机。TSAP 定义得非常好,并且尝试与其对等体通信的进程事先知道这一点。

TSAP

例如,当 DHCP 客户端想要与远程 DHCP 服务器通信时,它始终在端口号 67 上发出请求。当 DNS 客户端想要与远程 DNS 服务器通信时,它始终在端口号 53 (UDP) 上发出请求。

两个主要的传输层协议是

  • 传输控制协议

    它在两个主机之间提供可靠的通信。

  • 用户数据报协议

    它在两个主机之间提供不可靠的通信。

传输控制协议

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

特点

  • TCP 是一个可靠的协议。也就是说,接收方始终向发送方发送肯定或否定确认关于数据包的信息,以便发送方始终清楚地知道数据包是否到达目的地,或者是否需要重新发送它。

  • TCP 确保数据按发送顺序到达预定目的地。

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

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

  • TCP 提供端到端通信。

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

  • TCP 以客户端/服务器点对点模式运行。

  • TCP 提供全双工服务器,即它可以同时扮演接收方和发送方的角色。

报头

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

TCP Header
  • 源端口 (16 位) - 它标识发送设备上应用程序进程的源端口。

  • 目标端口 (16 位) - 它标识接收设备上应用程序进程的目标端口。

  • 序列号 (32 位) - 会话中段的数据字节的序列号。

  • 确认号 (32 位) - 当 ACK 标志设置为 1 时,此数字包含预期数据字节的下一个序列号,并作为对先前接收到的数据的确认。

  • 数据偏移量 (4 位) - 此字段表示 TCP 报头的大小(32 位字)和当前数据包中数据在整个 TCP 段中的偏移量。

  • 保留 (3 位) - 保留供将来使用,默认情况下所有都设置为零。

  • 标志(每位 1 位)

    • NS - 随机数和位由显式拥塞通知信令过程使用。

    • CWR - 当主机接收到带有 ECE 位设置的数据包时,它会设置拥塞窗口减小以确认已收到 ECE。

    • ECE - 它有两个含义

      • 如果 SYN 位被清除为 0,则 ECE 表示 IP 数据包的 CE(拥塞体验)位已设置。

      • 如果 SYN 位设置为 1,则 ECE 表示该设备具有 ECT 功能。

    • URG - 它指示紧急指针字段具有重要数据,应进行处理。

    • ACK - 它表示确认字段有效。如果ACK清零为0,则表示数据包不包含任何确认。

    • PSH - 设置时,它请求接收站将数据(一旦到达)立即推送到接收应用程序,而不进行缓冲。

    • RST - 重置标志具有以下功能:

      • 用于拒绝传入连接。

      • 用于拒绝分段。

      • 用于重新启动连接。

    • SYN - 此标志用于建立主机之间的连接。

    • FIN - 此标志用于释放连接,此后不再交换数据。由于带有SYN和FIN标志的数据包具有序列号,因此它们会按正确的顺序进行处理。

  • 窗口大小 - 此字段用于两个站之间进行流量控制,并指示接收器为分段分配的缓冲区大小(以字节为单位),即接收器期望接收多少数据。

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

  • 紧急指针 - 如果URG标志设置为1,则它指向紧急数据字节。

  • 选项 - 它提供常规报头未涵盖的其他选项。选项字段始终以32位字描述。如果此字段包含的数据少于32位,则使用填充来填充剩余位,以达到32位边界。

寻址 (Addressing)

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

  • 系统端口 (0-1023)
  • 用户端口 (1024-49151)
  • 私有/动态端口 (49152-65535)

连接管理

TCP通信采用服务器/客户端模型。客户端启动连接,服务器接受或拒绝连接。连接管理使用三次握手。

TCP Handshake

建立连接

客户端启动连接并发送带有序列号的分段。服务器使用自己的序列号和客户端分段的ACK(比客户端序列号大1)进行确认。客户端收到其分段的ACK后,会发送对服务器响应的确认。

释放连接

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

带宽管理

TCP使用窗口大小的概念来适应带宽管理的需求。窗口大小告诉远程端的发送方,此端的接收方可以接收多少个数据字节分段。TCP通过使用窗口大小1来使用慢启动阶段,并在每次成功通信后呈指数增长窗口大小。

例如,客户端使用窗口大小2并发送2个字节的数据。当收到此分段的确认时,窗口大小加倍到4,接下来发送的分段将包含4个数据字节。当收到4字节数据分段的确认时,客户端将窗口大小设置为8,依此类推。

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

错误控制和流量控制

TCP使用端口号来知道需要将数据分段交给哪个应用程序进程。除此之外,它还使用序列号与远程主机同步。所有数据分段都带有序列号发送和接收。当发送方收到ACK时,它知道接收方收到了哪个最后的数据分段。接收方通过参考最近接收到的数据包的序列号来了解发送方发送的最后一个分段。

如果最近接收到的分段的序列号与接收方期望的序列号不匹配,则将其丢弃并发送回NACK。如果两个分段具有相同的序列号,则比较TCP时间戳值以做出决定。

多路复用

在一个会话中组合两个或多个数据流的技术称为多路复用。当TCP客户端与服务器初始化连接时,它总是引用一个定义明确的端口号,该端口号指示应用程序进程。客户端本身使用从私有端口号池中随机生成的端口号。

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

这使客户端系统能够通过单个虚拟连接接收多个连接。如果超时太长,这些虚拟连接对于服务器来说不是很好。

拥塞控制

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

  • 加性增加,乘性减少

  • 慢启动

  • 超时反应

定时器管理

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

保持活动定时器

  • 此定时器用于检查连接的完整性和有效性。

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

重传定时器

  • 此定时器维护已发送数据的 stateful 会话。

  • 如果在重传时间内未收到已发送数据的确认,则会再次发送数据分段。

持久定时器

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

  • 要恢复会话,主机需要发送具有较大值的窗口大小。

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

  • 当持久定时器到期时,主机重新发送其窗口大小以让另一端知道。

  • 持久定时器有助于避免通信死锁。

计时等待

  • 释放连接后,任一主机都会等待计时等待时间才能完全终止连接。

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

  • 计时等待最长可达240秒(4分钟)。

崩溃恢复

TCP是一个非常可靠的协议。它为分段中发送的每个字节提供序列号。它提供反馈机制,即当主机接收到数据包时,它必须确认该数据包具有下一个预期的序列号(如果不是最后一个分段)。

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

用户数据报协议

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

在UDP中,接收方不会生成已接收数据包的确认,而发送方也不会等待已发送数据包的任何确认。这种缺点使该协议既不可靠,又易于处理。

UDP的需求

可能会出现一个问题,为什么我们需要一个不可靠的协议来传输数据?我们在确认数据包与实际数据一起占用大量带宽的情况下部署UDP。例如,在视频流的情况下,数千个数据包被转发到其用户。确认所有数据包很麻烦,并且可能包含大量带宽浪费。底层IP协议的尽力而为交付机制确保尽力而为地交付其数据包,但即使视频流中的一些数据包丢失,影响也不是灾难性的,可以很容易地忽略。视频和语音流量中丢失少量数据包有时会被忽略。

特点

  • 当数据的确认没有任何意义时,使用UDP。

  • UDP适合单向流动的数。

  • UDP简单且适合基于查询的通信。

  • UDP是非面向连接的。

  • UDP不提供拥塞控制机制。

  • UDP不保证数据的有序交付。

  • UDP是无状态的。

  • UDP适用于流媒体应用程序,例如VoIP、多媒体流。

UDP报头

UDP报头与其功能一样简单。

UDP Header

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

  • 源端口 - 此16位信息用于标识数据包的源端口。

  • 目标端口 - 此16位信息用于标识目标机器上的应用程序级服务。

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

  • 校验和 - 此字段存储发送方在发送前生成的校验和值。IPv4将此字段设置为可选,因此当校验和字段不包含任何值时,将其设置为0,所有位都设置为零。

UDP应用

以下是一些使用UDP传输数据的应用程序:

  • 域名服务

  • 简单网络管理协议

  • 简单文件传输协议

  • 路由信息协议

  • Kerberos

应用层介绍

应用层是OSI和TCP/IP分层模型中最顶层。由于它与用户和用户应用程序交互的重要性,因此该层存在于这两种分层模型中。此层用于参与通信系统的应用程序。

用户可能直接或间接地与应用程序交互。应用层是实际通信启动和反映的地方。由于此层位于层堆栈的顶部,因此它不服务于任何其他层。应用层借助传输层及其以下所有层来与远程主机通信或传输其数据。

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

Application Layer

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

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

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

因此,无论您使用哪种软件,应用程序层使用的协议才是被考虑的。DNS 是一种协议,它帮助诸如 HTTP 等用户应用程序协议完成其工作。

客户端-服务器模型

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

  • 对等式:两个远程进程都在同一级别执行,它们使用某些共享资源交换数据。

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

在客户端-服务器模型中,任何进程都可以充当服务器或客户端。并非机器的类型、机器的大小或其计算能力使其成为服务器;能够提供服务请求才使机器成为服务器。

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

通信

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

  • 套接字

  • 远程过程调用 (RPC)

套接字

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

当请求到达服务器时,服务器将对其进行处理。这可以是信息共享或资源请求。

远程过程调用

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

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

  • 然后打包(封送)所有参数,并进行系统调用以将其发送到网络的另一端。

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

  • 远程主机将数据传递给服务器存根,在服务器存根中对其进行解封送。

  • 参数传递给过程,然后执行该过程。

  • 结果以相同的方式发送回客户端。

应用层协议

有几种协议可在应用层为用户工作。应用层协议大致可分为两类

  • 用户使用的协议。例如,对于电子邮件,有电子邮件协议。

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

下面描述一些应用层协议

域名系统

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

向 DNS 服务器请求 FQDN,它将返回与其映射的 IP 地址。DNS 使用 UDP 端口 53。

简单邮件传输协议

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

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

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

文件传输协议

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

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

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

邮局协议 (POP)

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

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

超文本传输协议 (HTTP)

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

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

HTTP 版本

  • HTTP 1.0 使用非持久性 HTTP。最多只能通过单个 TCP 连接发送一个对象。

  • HTTP 1.1 使用持久性 HTTP。在这个版本中,可以过单个 TCP 连接发送多个对象。

网络服务

计算机系统和计算机化系统帮助人类高效工作并探索不可思议的事物。当这些设备连接在一起形成网络时,其能力会成倍增强。计算机网络可以提供的一些基本服务是。

目录服务

这些服务是名称与其值之间的映射,该值可以是可变值或固定值。此软件系统有助于存储信息、组织信息并提供各种访问方式。

  • 会计

    在一个组织中,许多用户都有与其映射的用户名和密码。目录服务提供了一种以加密形式存储此信息并在请求时使其可用的方法。

  • 身份验证和授权

    登录时和/或定期检查用户凭据以验证用户身份。用户帐户可以设置为分层结构,并且可以使用授权方案来控制其对资源的访问。

  • 域名服务

    DNS 广泛使用,并且是互联网运行的必不可少服务之一。此系统将 IP 地址映射到域名,域名比 IP 地址更容易记住和回忆。由于网络借助 IP 地址运行,而人类倾向于记住网站名称,因此 DNS 在用户请求网站名称时,从后端提供映射到其名称的网站的 IP 地址。

文件服务

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

  • 文件共享

    促成网络诞生的原因之一是文件共享。文件共享使用户能够与其他用户共享其数据。用户可以将文件上传到特定服务器,所有目标用户都可以访问该服务器。或者,用户可以在其自己的计算机上共享其文件,并向目标用户提供访问权限。

  • 文件传输

    这是在底层网络的帮助下,将文件从一台计算机复制或移动到另一台计算机或多台计算机的活动。网络使用户能够在网络中定位其他用户并传输文件。

通信服务

  • 电子邮件

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

  • 社交网络

    最近的技术使技术生活变得社交化。精通电脑的人们可以找到其他熟人或朋友,可以与他们联系,并可以分享想法、图片和视频。

  • 互联网聊天

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

  • 讨论区

    讨论区提供了一种将具有相同兴趣的多个用户连接起来的机制。它使用户能够提出查询、问题、建议等,所有其他用户都可以看到。其他人也可以回应。

  • 远程访问

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

应用程序服务

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

  • 资源共享

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

  • 数据库

    此应用程序服务是最重要的服务之一。它存储数据和信息,处理数据,并使用户能够通过使用查询高效地检索数据。数据库帮助组织根据统计数据做出决策。

  • Web 服务

    万维网已成为互联网的代名词。它用于连接互联网,并访问互联网服务器提供的文件和信息服务。

广告