跳转到内容

A-level 计算机科学/CIE/高级理论/通信与互联网技术

来自维基教科书,开放的书本,开放的世界
A-level 计算机科学
数据表示 通信与互联网技术 硬件
规范链接

协议

  • 理解为什么协议对于计算机之间的通信至关重要
  • 理解如何将协议实现视为一个堆栈,其中每一层都有自己的功能
  • 理解 TCP/IP 协议每一层的函数
  • 理解当一条消息从互联网上的一台主机发送到另一台主机时,TCP/IP 协议的应用
  • 理解 BitTorrent 协议如何提供点对点文件共享
  • 了解其他协议(HTTP、FTP、POP3、SMTP)及其用途

电路交换、分组交换和路由器

  • 理解电路交换及其应用
  • 理解分组交换
  • 理解路由器的功能
  • 解释如何使用分组交换在网络(包括互联网)上传递消息

局域网

  • 理解总线拓扑网络以及分组在两台主机之间传输方式的含义
  • 理解星型拓扑网络以及分组在两台主机之间传输方式的含义
  • 理解无线网络
  • 解释如何使用硬件来支持 LAN
  • 交换机、路由器、服务器、网络接口卡 (NIC)、无线接入点
  • 理解以太网以及 CSMA/CD 的工作原理

协议是一组规则,这些规则规定了如何发送、接收、传输和解释数据。一组协同工作的协议被称为协议族

TCP/IP 协议族

[编辑 | 编辑源代码]

物理层

[编辑 | 编辑源代码]

物理层负责通过物理介质将数据从一台设备发送到另一台设备。物理层协议通常是低级协议。

物理层协议可以细分为

机械协议
关于连接器尺寸和形状的协议。
电气/光学协议
确定哪个电压级别代表 0 和 1 的数据值的协议。
功能协议
确定连接器每个引脚负责什么的协议。
过程协议
定义为了发送数据而需要执行的步骤顺序的协议。

对于给定的网络,物理层协议可以确定

数据速率
在给定时间段内预期接收的比特数。
比特同步
确保发送方和接收方具有相同数据速率的方法。
配置
系统之间的链接是点对点连接还是多点连接。
拓扑结构
网络中的终端系统如何相互连接。
模式
连接是单工(单向)、半双工(双向,但不能同时)还是全双工(双向,同时)模式。
[编辑 | 编辑源代码]

数据链路层负责对数据进行帧封装,以便它准备好通过物理层传输。数据链路层在从网络层接收的数据中添加头和尾。

帧头包含源和目标设备的物理地址。这些物理地址通常是媒体访问控制 (MAC) 地址,这些地址唯一标识用于将设备连接到网络的网络接口卡 (NIC)。帧尾可能包含错误控制机制,例如奇偶校验。

当数据通过网络传输时,帧用于将数据从一个系统传输到下一个系统。这被称为跳跃式转发。当数据通过多个中间系统发送时,每个中间系统都会接收一个帧,删除原始帧头和尾,使用新的头和尾对数据进行帧封装,并将数据转发到下一个系统。

网络层

[编辑 | 编辑源代码]

网络层负责在网络的多个链路上发送数据包。数据链路层将数据从一个系统传输到另一个系统,而网络层将数据从端到端发送。

为此,网络层在数据中添加数据包头,其中包含

  • 源网络地址
  • 目标网络地址
  • 正在使用的网络协议版本

系统的网络地址不要与数据链路层使用的物理地址混淆。每个网络地址标识一个终端系统,而物理地址唯一标识连接到网络的每个系统。

在大型网络中,数据包通过一系列中间系统从一个终端系统发送到另一个终端系统。每个中间系统通过跳跃式转发帧将数据包从一个系统转发到另一个系统,从而实现数据包的端到端传递。

传输层

[编辑 | 编辑源代码]

传输层负责进程到进程的传递:它确保发送方和接收方都知道如何处理发送的数据包。它还负责确保数据包不会超过其允许的最大大小。

传输层头包含

  • 发送方端口地址
  • 接收方端口地址
  • 数据包序列号
  • 错误控制信息

端口地址告诉接收方哪个应用程序负责发送数据,以及哪个应用程序应该用于接收数据。一些常见的示例包括:端口:80,用于 HTTP;端口:20:21,用于 FTP;端口:25,用于 SMTP。

序列号在需要将大型消息拆分为多个部分时使用。这将告诉接收方是否已收到所有数据包,以及以什么顺序排列数据包以组装消息。

传输层协议负责以下工作:

进程寻址和复用
确定哪个进程发起了消息,以及哪个进程应该接收消息。(这是通过端口地址实现的)
段处理
为数据包分配序列号,以便在另一端重新组装消息。
连接控制
在发送数据之前发送控制信号以建立连接。(如果协议是面向连接的,则适用此规则)
流量控制
确保快速发送方在两个不同系统之间发送数据时不会压倒慢速接收方。
错误控制
检测和纠正传输过程中发生的错误。

应用层

[编辑 | 编辑源代码]

应用层是用户与网络之间的接口。它确定消息的内容。

例如,当使用 HTTP 应用程序访问网站时,消息是一个 GET 请求。这意味着你想要从服务器获取数据。因此,发送到传输层的消息是 GET www.example.net 1.0

  • GET 是方法。
  • www.example.net 是目标的 URL。
  • 1.0 是所用协议的版本号。

使用 TCP/IP 协议套件

[编辑 | 编辑源代码]

假设我们要访问一个网站。为此,我们通常会在浏览器中键入 URL 或点击书签。然后,应用程序协议 HTTP 会形成消息:GET www.example.net 1.0␍␊

然后,此消息被发送到传输层,在那里它很可能由 TCP 处理。TCP 将在必要时将消息拆分成数据包,为每个数据包分配序列号,然后将数据包传递给网络层协议。如果使用的传输协议是面向连接的,则第一个数据包用于在发送其他数据包之前建立连接。

为了让网络层协议发送消息,它首先需要知道目标的网络地址。为了找到它,它使用域名系统 (DNS) 来查找与 URL www.example.net 对应的地址。找到地址后,它将数据包头附加到数据包上,以便它们最终到达正确的目的地。

数据链路层使用逐跳转发将这些数据包从一个系统发送到另一个系统。物理层是实际发送数据的层。

在服务器端,第一个数据包由网络层协议接收,然后转发到传输层。如果使用的是面向连接的协议,服务器将发送一个确认以建立连接。连接建立后,其余数据包将被发送。

因此,请求被接收并重新组装,所以服务器需要对此做出响应。它以与客户端向服务器发送请求的方式几乎相同的方式将响应发送回客户端。

BitTorrent 协议

[编辑 | 编辑源代码]

BitTorrent 协议是一种在分散的点对点模型中共享文件的方式,与传统的、更集中的客户端和服务器模型相反。

A peer distributes chunks to other peers. These peers distribute chunks to more peers until all of the peers have all of the chunks
BitTorrent 协议运作的动画可视化

客户端和服务器模型让客户端从中央服务器下载文件,而 BitTorrent 协议则有一组,这些群的成员互相提供定期的上传和下载。这样做的好处是,可以防止单个设备不堪重负,因为所有设备只与少数其他设备共享资源。

为了使用 BitTorrent,一个对等节点将一个 .torrent 文件加载到 BitTorrent 客户端中,该客户端提供与跟踪器的连接。跟踪器是一个设备,它保存与跟踪器连接的对等节点列表,并跟踪哪些对等节点拥有哪些文件的哪些块。跟踪器不存储文件,它只跟踪文件。对等节点会定期更新跟踪器,这样它们就不会收到已经拥有的块。

拥有所需文件所有块的对等节点称为种子。种子将文件块分发给没有所有文件块的对等节点。当一个对等节点获得文件的所有块后,它就会成为一个新的种子,然后可以将更多块发送给其他对等节点。为了确保下载速度高,稀有块的优先级更高。

使用 BitTorrent 的主要优点是它具有良好的可扩展性。如果你有成千上万的人试图从同一个服务器下载文件,该服务器可能会不堪重负并崩溃,从而降低下载速度;而使用 BitTorrent,更大的群实际上可以实现更快的下载速度。

应用程序层协议

[编辑 | 编辑源代码]

超文本传输协议 (HTTP)

[编辑 | 编辑源代码]

HTTP 是一个用于在互联网上传输网页的请求-响应协议。它基于客户端-服务器架构。与 HTTP 相关的两种主要方法是:GET & POST

GET 用于从服务器检索数据。

POST 用于将数据放入服务器的数据库

文件传输协议 (FTP)

[编辑 | 编辑源代码]

FTP 是一种用于在客户端-服务器架构中传输文件的协议。FTP 服务器托管文件,如果客户端具有权限,则可以上传、下载或删除文件。

邮件协议 (SMTP & POP3)

[编辑 | 编辑源代码]

简单邮件传输协议 (SMTP) 用于将邮件发送到邮件服务器,邮局协议版本 3 (POP3) 用于从邮件服务器接收邮件。

还有一种邮件协议,即互联网消息访问协议 (IMAP),它有时用于替代 POP3,并执行大致相同的功能。

但是,邮件通常使用其他协议(例如 HTTP)发送和接收。SMTP 仍然用于在邮件服务器之间移动邮件。

电路交换、分组交换和路由器

[编辑 | 编辑源代码]

电路交换

[编辑 | 编辑源代码]

电路交换是一种在网络中建立连接的方式,它使用的是持续整个传输过程的专用链路。电话通话的运作方式通常就是这样:电话通过固定电话线或无线电传输连接到交换局;该交换局连接到其他交换局;最后一个交换局连接到你要联系的人的电话。

在电路交换系统中,所有数据都通过相同的连接从一个节点传输到另一个节点。这意味着在通信期间,这些链路不能被其他数据使用。

分组交换

[编辑 | 编辑源代码]

分组交换是指在发送数据时不建立电路,而是先将消息拆分成数据包再发送。每个数据包通过网络独立到达目的地。

电路交换的主要优点是,数据包可以沿着最有效的路径路由到目的地,这使得传输速度更快,因为数据不会被迫进入速度慢或流量大的连接。

The packets in a packet-switched transmission all take different paths to reach the same destination
分组交换运作的动画。

局域网

[编辑 | 编辑源代码]

总线拓扑网络

[编辑 | 编辑源代码]
Several computers are connected to the backbone cable
总线拓扑网络的示意图

总线拓扑网络是指所有系统都通过一根公共主干线进行多点连接。任何两个端系统之间没有直接连接。

  • 它需要最少的电缆长度。
  • 可以轻松添加新系统。
  • 总线拓扑结构具有简单且可靠的架构。
  • 数据冲突的可能性更大,导致数据丢失。
  • 主干电缆中的断裂会影响整个网络。
  • 难以在总线网络中隔离故障。

星形拓扑网络

[编辑 | 编辑源代码]
Many computers are connected to a central device
星形拓扑网络的示意图

一个星形拓扑网络包含一个中央设备,所有终端系统都连接到它。

  • 可以轻松将新设备添加到星形网络中。
  • 安全软件(例如防火墙)可以存储在中央设备上,而不是存储在每个单独的终端系统上。
  • 如果一个节点或连接发生故障,不会影响其他连接。
  • 星形网络需要为每个连接到它的设备提供一条电缆。
  • 如果中央设备发生故障,整个网络就会失效。
  • 构建星形网络需要额外的硬件(例如集线器、交换机、服务器),从而增加了成本。

无线网络

[编辑 | 编辑源代码]

无线网络顾名思义,是不带电线的网络。无线网络使用电磁辐射来传输信息。

蓝牙是一种使用短距离无线电波传输信息的协议。蓝牙是一种自组织网络:没有定义的架构,连接是自发建立的。蓝牙通常用于简单的应用程序,例如使用无线键盘或鼠标。蓝牙设备包含小型、低功耗无线电发射器和接收器。当设备在其他蓝牙设备的范围内时,它们会互相检测,并可以配对或连接以共享数据或将硬件连接到计算机。

WiFi是一种无线局域网协议,它使用无线电波来传输数据。通常,WiFi 网络以无线接入点为中心,该设备以无线方式与附近的设备通信,将它们连接到互联网,因此不是自组织网络。

WiMAX(全球微波接入互操作性)是一种无线广域网协议。它使用微波而不是无线电波来传输数据,无需铺设地下电缆。这使得可以在原本需要大量电缆才能覆盖的偏远地区进行数据传输。

蜂窝网络

[编辑 | 编辑源代码]
A collection of cells. Each cell has a base station at its centre. Adjacent cells have different frequencies
蜂窝网络的示意图

蜂窝网络是一种使用小区覆盖大地理区域的网络。每个小区的中心都是一个基站。无线设备可以使用无线信号连接到特定频率的基站。相邻小区使用不同的频率,以便它们不会互相干扰。不相邻小区可以使用相同的频率。

局域网硬件

[编辑 | 编辑源代码]

网络接口卡 (NIC)

[编辑 | 编辑源代码]

网络接口卡是将系统连接到网络的必要组件。它允许系统与网络进行接口,并使用 MAC 地址唯一标识系统。

集线器

[编辑 | 编辑源代码]

集线器是一种过时的物理层设备,它将发送到它的所有数据广播到网络上的每个设备。集线器因交换机和路由器的出现而被淘汰。

网桥是两个网络之间的连接器。它只在数据是发送给另一个网络中的接收者时才将数据从一个网络发送到另一个网络。网桥因交换机和路由器的出现而被淘汰。

交换机

[编辑 | 编辑源代码]

交换机是一种数据链路层设备,它将数据从源发送到目标接收者。交换机使用消息帧头中记录的接收者的 MAC 地址来实现这一点。

路由器

[编辑 | 编辑源代码]

路由器是一种网络层设备,它通过网络将数据沿着最有效的路线发送。路由器可以分析网络流量,并选择流量最少的路线来发送数据。

载波侦听多路访问/冲突检测(CSMA/CD) 是一种用于以太网连接的冲突检测协议。它通过始终监测电线的电压来工作。如果电线上正在传输帧,电线上的电压就会发生变化。

如果在另一个系统试图发送帧时正在传输帧,则会在电线上发送一个阻塞信号,告诉双方等待随机时间后才能发送下一帧。这可以确保在发送下一帧时不会发生冲突。

CSMA/CD 仅用于系统之间的半双工链路。对于全双工单工链路,它是没有必要的。

华夏公益教科书