跳到主要内容

通信与互联网技术

A-Level 计算机科学 · 第 14 主题

训练
本章视频课 打开视频页面
11:17

Why Protocols Are Needed

Two computers want to talk, but one sends its data one way and the other expects it completely differently. The result is gibberish — like two people speaking…

英文讲解 · 内嵌中英文字幕

14.1

协议

大纲
Candidates should be able to: Notes and guidance
Show understanding of why a protocol is essential for communication between computers
Show understanding of how protocol implementation can be viewed as a stack, where each layer has its own functionality
Show understanding of the TCP/IP protocol suite Four Layers (Application, Transport, Internet, Link) Purpose and function of each layer Application when a message is sent from one host to another on the internet
Show understanding of protocols (HTTP, FTP, POP3, IMAP, SMTP, BitTorrent) and their purposes BitTorrent protocol provides peer-to-peer file sharing

来源:剑桥国际大纲

一个协议(protocol)是设备如何通信一套规则。两端都必须遵循同样的规则,否则一方的信号对另一方毫无意义。协议定义数据的格式(地址和有效载荷在哪里)、消息的顺序(谁先说话、何时确认)、每个消息的含义定时(超时、重传),以及出错时做什么。没有一个约定的协议,通信就失败——像两个人说不同的语言而没有翻译。

"解释为什么协议对计算机之间的通信是必不可少的"(三分)。 (1) 协议是发送方和接收方都同意的一套规则;(2) 没有它,两台计算机会以不同方式解释数据(格式、顺序、各部分的含义),消息就无法被理解;(3) 它使不同类型和不同厂商的计算机能够通信,因为大家实现同一个标准。要提到规则涵盖什么:数据的格式、消息的顺序、错误检测和恢复、以及速度或时序。

两个设备遵循同样的规则:格式、顺序、定时和出错时做什么
一个协议是共享的规则:格式、顺序、定时和错误
词汇表 训练
英文 中文 拼音
protocol/ˈprəʊtəkɒl/ 协议 xié yì
练习卷 双页
14.1

分层协议

联网是复杂的,所以它被拆成(layers),每层有一件专注的工作,只与上面和下面的层对话。好处:模块化(modularity,替换一层——比如用 Wi-Fi 替换 Ethernet——而不碰其他层)、标准化(供应商互操作),以及抽象(abstraction,你忽略别处处理的细节)。互联网用 TCP/IP 协议栈(protocol suite,4 层)。

词汇表 训练
英文 中文 拼音
layers/ˈleɪəz/ céng
modularity/ˌmɒdjʊˈlærɪti/ 模块化 mó kuài huà
abstraction/əbˈstrækʃn/ 抽象 chōu xiàng
protocol suite/ˈprəʊtəkɒl swiːt/ 协议栈 xié yì zhàn
14.1

TCP/IP 协议族

目的 例子
Application 用户程序做什么 HTTP, FTP, SMTP, IMAP
Transport 进程之间端到端的传递 TCP, UDP
Internet 在网络之间路由数据包 IP
Link 在物理介质上发送比特 Ethernet, Wi-Fi
一个四行的栈:Application、Transport、Internet、Link,发送沿左侧往下、接收沿右侧往上,每层上有示例协议
TCP/IP 协议栈的四层

各层的目的,按评分方案的措辞。 *应用层:*提供用户应用程序使用的协议(网页用 HTTP,电子邮件用 SMTP)以及应用程序与网络之间的接口;它产生要发送的数据并把它交给传输层。*传输层:*建立端到端的连接,把数据拆分成数据包(段),加上端口号序号;接收时按顺序重组数据包并请求缺失的包(TCP),或者不带这些保证地发送(UDP)。*网络层:*加上源和目的 IP 地址形成 IP 数据包(数据报),并通过路由器在网络之间路由它们;它不保证送达。*链路层:*加上 MAC 地址和校验位形成,并通过网络接口卡在物理局域网(Ethernet 或 Wi-Fi)上传输比特。"补全协议栈"就是这四层,从上到下依次为:Application、Transport、Internet、Link。

把消息沿 TCP/IP 栈向下发送:应用程序的消息先被携带端口和序号的 TCP 首部包裹,再被携带源和目的 IP 地址的 IP 首部包裹,再被携带 MAC 地址和校验字段的帧首部包裹;接收方按相反顺序剥去它们
封装:每一层给它从上一层收到的内容加上自己的首部(header),所以线路上的比特携带四组信息;接收方逐层去掉它们

"描述当消息从一台主机发送到另一台主机时 TCP/IP 协议簇如何被应用"(五分)。发送方,消息沿栈向下传递:(1) 应用层用 HTTP 或 SMTP 等协议产生数据;(2) 传输层把它拆成数据包,并加上带端口号和序号的首部;(3) 网络层加上带源和目的 IP 地址的首部并选择路由;(4) 链路层加上下一台设备的 MAC 地址,并通过物理链路发送帧。沿途的路由器读取网络层首部并转发每个数据包。在接收方,帧沿栈向上传递:每一层去掉并处理自己的首部,传输层按序号顺序重组数据包并请求缺失的包,应用层呈现消息。两端每一层用同一个协议,正是交换得以成功的原因。

Application layer

应用层(application layer)给用户程序提供服务并定义它们说的协议(网络用 HTTP,电子邮件用 SMTP)。这是一个程序员最常工作的地方。

Transport layer

传输层(transport layer)在进程之间端到端地传递数据,进程由端口号(port numbers)标识。两个协议:

TCP 建立一个连接并按序传递所有数据;UDP 发了就忘
TCP 连接并按序传递;UDP 发了就忘
  • TCP(传输控制协议)——面向连接(connection-oriented):建立一个连接、确保所有数据按序到达、重传丢失的数据包(packets)、控制流量。可靠但有开销。被 HTTP、HTTPS、SMTP、FTP 使用。
  • UDP(用户数据报协议)——无连接(connectionless):发了就忘,没有确认或排序。开销低,无保证。用于流媒体、DNS 和游戏,那里速度胜过可靠性。

Internet layer

网络层(internet layer)用 IP 在主机之间携带数据包。每个数据包有一个源和目的 IP 地址(IP address),路由器(routers)把它往前转发。它不保证传递——那是 TCP 的工作。

一个家用路由器为你的家做这件工作:它读每个数据包的目的地址并把它送往互联网,再送回正确的设备。

一个黑色的家用 Wi-Fi 路由器,带四根竖直的天线和前面一排状态灯
一个家用 Wi-Fi 路由器:它在你的设备和互联网之间转发数据包

在路由器到达更广的互联网之前,一个调制解调器(modem)通过提供商的电缆或电话线把家连到互联网提供商。它的灯显示链路已连通并在线。

一个高的黑色电缆调制解调器,竖立在一个朴素的背景上,前面一列状态灯
一个电缆调制解调器把一个家庭网络连到互联网提供商

Link layer

链路层(link layer)在一条物理链路(Ethernet、Wi-Fi)上发送比特。它加一个带 MAC 地址(MAC addresses)的帧头并处理介质访问(例如 Ethernet 上的 CSMA/CD(载波侦听多路访问))。

一个 Ethernet 帧拆成前导码、帧起始、Ethernet 数据和帧间隙,数据部分展开成目的和源 MAC 地址、类型/长度、有效载荷消息和帧校验序列,每个带以字节计的大小
一个典型 Ethernet 帧的各部分

在一个有线局域网上,一个交换机(switch)把许多设备连在一起。每个设备用一根 Ethernet 电缆(一个 RJ45 插头)插入一个端口,而交换机用每个帧里的 MAC 地址把它只发到正确的端口。

一个小的黑色 8 端口千兆 Ethernet 交换机,在一个朴素的背景上,前面一排带编号的 RJ45 端口,每个带一个状态灯
一个网络交换机在一个局域网上连接许多有线设备

物理链路可以是一根铜线、一个无线电信号(Wi-Fi),或一根光纤(fibre-optic cable)。在一根光纤中,比特作为光的闪烁穿过非常细的玻璃丝行进,这很快并把数据带很远。

一束光纤丝在一个深色背景下扇形散开,每根细玻璃丝在尖端闪着一个蓝白色的光点
一根光纤:数据作为光穿过细玻璃丝行进

一个无线电链路可以到达远得多。一个卫星天线(satellite dish)向一颗卫星发送和接收无线电信号,把数据带到有线链路不易到达的地方。

一个圆形的灰色家用卫星天线,安装在一面房屋墙上、窗户旁边,它的馈源臂向前伸出
一个卫星天线通过无线电在远距离上发送和接收数据
探索

Tap the four layers of the TCP/IP model

Explore each layer. Data travels DOWN the stack as it's sent (each layer adds its header) and back UP as it's received — and any layer can be swapped without touching the others.

词汇表 训练
英文 中文 拼音
application layer/ˌæplɪˈkeɪʃn ˈleɪə/ 应用层 yìng yòng céng
transport layer/ˈtrænspɔːt ˈleɪə/ 传输层 chuán shū céng
port numbers/pɔːt ˈnʌmbəz/ 端口号 duān kǒu hào
TCP/ˌtiː siː ˈpiː/ 传输控制协议 chuán shū kòng zhì xié yì
connection-oriented/kəˈnekʃn ˈɔːrɪəntɪd/ 面向连接 miàn xiàng lián jiē
packets/ˈpækɪts/ 数据包 shù jù bāo
UDP/ˌjuː diː ˈpiː/ 用户数据报协议 yòng hù shù jù bào xié yì
connectionless/kəˈnekʃənləs/ 无连接 wú lián jiē
internet layer/ˈɪntənet ˈleɪə/ 网络层 wǎng luò céng
routers/ˈruːtəz/ 路由器 lù yóu qì
modem/ˈməʊdem/ 调制解调器 tiáo zhì jiě tiáo qì
link layer/lɪŋk ˈleɪə/ 链路层 liàn lù céng
CSMA/CD/ˌsiː es em ˈeɪ ˌsiː ˈdiː/ 载波侦听多路访问/冲突检测 zài bō zhēn tīng duō lù fǎng wèn / chōng tū jiǎn cè
switch/swɪtʃ/ 交换机 jiāo huàn jī
fibre-optic cable/ˈfaɪbə ˈɒptɪk ˈkeɪbl/ 光纤 guāng xiān
satellite dish/ˈsætəlaɪt dɪʃ/ 卫星天线 wèi xīng tiān xiàn
HTTP/ˌeɪtʃ tiː tiː ˈpiː/ 超文本传输协议 chāo wén běn chuán shū xié yì
FTP/ˌef tiː ˈpiː/ 文件传输协议 wén jiàn chuán shū xié yì
SMTP/ˌes em tiː ˈpiː/ 简单邮件传输协议 jiǎn dān yóu jiàn chuán shū xié yì
IP address/ˌaɪ ˈpiː əˈdres/ IP地址 IP dì zhǐ
MAC addresses/mæk əˈdresɪz/ MAC地址 MAC dì zhǐ
header/ˈhedə/ 首部 shǒu bù
14.1

常见的应用层协议

  • HTTP(超文本传输协议)——浏览器从服务器取网页(经 TCP,端口 80)。HTTPS 是 HTTP 经 TLS——加密,端口 443。
  • FTP(文件传输协议)——在客户端和服务器之间传输文件。
  • SMTP(简单邮件传输协议)——在客户端和服务器之间、以及服务器之间发送电子邮件。接收用 POP3 或 IMAP。
  • POP3——下载电子邮件并通常从服务器删除它。IMAP——把电子邮件留在服务器上并跨设备同步,所以同一个收件箱处处出现。
  • BitTorrent——一个对等网络(peer-to-peer)协议;一个文件被拆成从许多对等方并行下载的片,所以没有单一的服务器承担全部负载。
一个 tracker 在中央,对等方围绕它——种子、吸血者和新对等方——交换文件片,带一个图例
BitTorrent:一个 tracker 帮助对等方找到彼此,然后它们直接共享文件片

各协议的目的,用得分的措辞。

协议 目的(这样表述)
HTTP 在网页服务器和浏览器之间传输网页(超文本);HTTPS 是加密版本
FTP 在客户端和服务器之间传输文件(向文件服务器上传和从它下载)
SMTP 把电子邮件从客户端发送到邮件服务器,以及在邮件服务器之间发送("推"协议)
POP3 把电子邮件从服务器下载到客户端,通常从服务器删除,所以在一台设备上阅读
IMAP 让客户端读取和管理留在服务器上的电子邮件,所以每台设备看到同一个邮箱
BitTorrent 对等分享文件:文件的片段同时从许多其他用户下载,并上传给他们

被问到两个电子邮件协议时,发送给 SMTP,接收给 POP3 或 IMAP;被要求描述 IMAP 时,要说消息留在服务器上并在各设备之间同步,这是它与 POP3 的区别。

"描述如何用 BitTorrent 协议分享文件"(四分)。 (1) 文件被拆成片段(通常每片 256 KB),一个小的 torrent 文件描述它们(它们的散列值)并指定一个追踪器(tracker)。(2) 想要该文件的对等方联系追踪器,追踪器保存当前分享该文件的(swarm)中的对等方列表。(3) 该对等方同时从许多对等方下载不同的片段,一旦持有某片段就把它上传给其他人;拥有完整文件的对等方是种子(seed),仍在下载的是吸血者。(4) 所有片段到齐后重组并对照散列值检验。"解释对等文件分享是什么意思":没有保存文件的中央服务器;每台计算机既是客户端也是服务器,从其他方下载并上传给其他方,所以负载和带宽分散在整个群中,对等方越多速度越快。

探索

Network route lab

Follow data from a device through network hardware and protocols.

词汇表 训练
英文 中文 拼音
peer-to-peer/pɪə tə pɪə/ 对等网络 duì děng wǎng luò
tracker/ˈtrækə/ 追踪器 zhuī zōng qì
swarm/swɔːm/ qún
seed/siːd/ 种子 zhǒng zi
14.2

电路交换与分组交换

大纲
Candidates should be able to: Notes and guidance
Show understanding of circuit switching Benefits, drawbacks and where it is applicable
Show understanding of packet switching Benefits, drawbacks and where it is applicable Show understanding of the function of a router in packet switching Explain how packet switching is used to pass messages across a network, including the internet

来源:剑桥国际大纲

Circuit switching

在发送任何数据之前,在两端之间建立一条专用路径(电路交换(circuit switching)),为整个会话保留,然后释放。它给出保留的带宽(bandwidth)和按序传递,但在静默期间低效且建立慢。经典例子:传统电话网络。

设备 A 和设备 B 之间的一个路由器网状结构,一条路径被高亮并为整个通话端到端地保留
电路交换:一条专用路径被端到端地保留

"描述作为数据传输方法的电路交换"(三分)。 (1) 在发送任何数据之前,在发送方和接收方之间建立一条专用路径(电路);(2) 整个消息沿该路径按顺序作为一个连续的流发送;(3) 电路在通信的持续期间被保留,之后释放。

优点和缺点。 *优点:*电路的全部带宽可用且有保证;数据按序到达,不需要重组,电路建立后没有延迟;路由不变,所以时序可预测(适合实时语音和视频)。*缺点:*发送任何东西之前要花时间建立电路;即使没有数据流动电路也被保留,所以带宽被浪费,其他用户不能共享;两端必须同时空闲;路径上任何地方的故障都会中断整个通话,并且没有自动的备用路由。*适用场合:*电话通话或实时视频链路,稳定不间断的流比效率更重要。

Packet switching

数据被拆成数据包,每个独立地发送(分组交换(packet switching))。每个数据包携带目的地址;路由器为每个数据包做决定,所以数据包可能走不同的路由并乱序到达,而目的地把它们重组。它高效(一条链路在许多会话间被多路复用(multiplexed))、健壮(绕过一个故障重新路由),但有可变的延迟(latency)和可能的丢失(TCP 处理可靠性)。被互联网使用。

同样的路由器网状结构,数据包显示为带编号的彩色方块,从计算机 A 到计算机 B 走不同的路由,然后在 B 按序重组
分组交换:数据包独立地行进,可能走不同的路由
数据包的各部分:首部保存源和目的地址、序号、包数和校验和,后面是携带该数据包那一份数据的有效载荷
让数据包能独立传输的东西:地址说去哪里,序号说它是消息的哪一部分,校验和表明它是否完好到达

"描述如何用分组交换在网络上传递消息"(四分)。 (1) 消息被拆成固定最大尺寸的数据包;(2) 每个数据包被加上一个首部,包含源和目的地址、一个序号(sequence number)和一个校验;(3) 每个数据包独立发送,可能走由它遇到的路由器选择的不同路由;(4) 在目的地用序号把数据包按序重组,缺失的数据包被再次请求。若题目排除检查和重发,就去掉最后一句。

"描述路由器在分组交换中的功能"(三分)。 路由器接收一个数据包,读取其首部中的目的 IP 地址,查阅它的路由表(routing table)决定朝该目的地的最佳下一跳,并考虑流量(拥塞)和故障链路;然后把数据包转发到该链路上。同一消息的数据包可能从不同路由离开;链路繁忙时路由器把数据包放在队列中。

"描述分组交换确保完整消息被接收的两种方式。" (1) 每个数据包携带序号,所以接收方能把数据包排序并能判断某个包缺失;(2) 接收方对到达的数据包发送确认(acknowledgement);在时限内未被确认的数据包由发送方重传。每个数据包中的校验和(checksum)让接收方检测出损坏的数据包并丢弃它,进而触发重发。

优点和缺点。 *优点:*不需要建立电路;网络的链路被许多消息共享,所以带宽利用高效;数据包可以绕开故障或拥塞的链路重新路由,所以传输健壮;丢失或损坏的数据包只需重发那个包,而不是整个消息。*缺点:*数据包可能乱序到达,必须重组,有些可能丢失或延迟;首部增加开销;可变的延迟使它不加额外措施就不太适合实时语音和视频;负载很重的网络会丢包。*适用场合:*电子邮件、网页、文件下载和任何"突发"流量,以及整个互联网。

方面 电路交换 分组交换
路径 专用、保留 共享、每包
建立时间
带宽使用 低效 高效
顺序 按序 可能乱序
健壮性 一个故障切断电路 绕过故障重新路由
适合 恒速流(语音) 突发流(网络、电子邮件)

现代网络因分组交换的高效和韧性而使用它。

四个区别,成对表述。 (1) 电路交换在发送前建立专用路径;分组交换不建立路径就发送。(2) 电路交换中整个消息走一条路由;分组交换中数据包可能走不同路由。(3) 电路交换按序送达数据、不需要重组;分组交换需要序号来重组。(4) 电路交换为一次通话保留带宽,即使空闲也如此;分组交换在许多消息之间共享链路。(也可接受:链路故障会中断电路,而数据包会被重新路由;电路交换适合实时流,分组交换适合突发数据。)每个区别都要写出两半;只写一边不得分。

Describing packet switching in a few sentences

一个好的考试答案:"消息被分成小数据包。每个数据包携带目的和源地址以及一个序列号。每个数据包独立地穿过网络行进,路由器为每个数据包选择下一跳。数据包可能走不同的路径并乱序到达。目的地用序列号重组消息,而丢失的数据包可以再次被请求。"

例题。 一通电话和一个大文件下载共用一个网络。各自适合哪种交换方式?为什么?电话需要平稳、低延迟的数据流,如果有片段迟到或乱序到达就会严重受影响 - 所以电路交换适合它:在整通电话期间建立一条专用路径,并为其保留带宽。文件下载并不在意时序或到达顺序,因为接收端会重新组装它,而且它能从任何恰好空闲的带宽中获益 - 所以分组交换适合它:文件被拆成独立传输的数据包,每个包带有源地址、目的地址和序号,路由器为每个包各自选择下一跳。要点出决定性的那条流量特性:电话要的是保留带宽和低延迟,下载要的是效率和容错。

探索

A packet's journey across the internet

Step through packet switching. The message is split up, each packet finds its own way, and the destination puts them back together — which is why the internet is so efficient and hard to break.

词汇表 训练
英文 中文 拼音
circuit switching/ˈsɜːkɪt ˈswɪtʃɪŋ/ 电路交换 diàn lù jiāo huàn
reserved bandwidth/rɪˈzɜːvd ˈbændwɪdθ/ 带宽 dài kuān
packet switching/ˈpækɪt ˈswɪtʃɪŋ/ 分组交换 fēn zǔ jiāo huàn
multiplexed/ˌmʌltɪˈplekst/ 多路复用 duō lù fù yòng
variable latency/ˈveərɪəbl ˈleɪtənsi/ 延迟 yán chí
sequence number/ˈsiːkwəns ˈnʌmbə/ 序号 xù hào
routing table/ˈraʊtɪŋ ˈteɪbl/ 路由表 lù yóu biǎo
acknowledgement/əkˈnɒlɪdʒmənt/ 确认 què rèn
checksum/ˈtʃeksəm/ 校验和 jiào yàn hé
bandwidth/ˈbændwɪdθ/ 带宽 dài kuān
latency/ˈleɪtənsi/ 延迟 yán chí
观看视频课 练习卷 双页
14.2

考官认可的定义

定义题按固定措辞评分。准确学会这些,只给一个答案。

术语 定义
协议 管理数据如何传输的一套规则,由发送方和接收方共同遵守,使双方以同样方式解释数据
协议栈 各有自己功能、共同完成通信的协议各层;每一层只与其上下相邻的层通信
应用层 提供应用程序交换数据所用的协议(HTTP、SMTP、FTP、IMAP、POP3)
传输层 建立端到端通信,把数据拆成带端口号和序号的数据包,重组它们并请求缺失的包(TCP),或不带保证地发送(UDP)
网络层 加上 IP 地址形成数据包,并通过路由器在网络之间路由它们
链路层 加上 MAC 地址形成帧,并在物理局域网上传输比特
路由器 读取数据包的目的地址并沿朝该目的地的最佳可用路由转发它的设备
电路交换 在发送数据之前在两端之间建立一条专用通信路径,并在整个传输期间保持
分组交换 消息被拆成各带首部的数据包,独立地经可能不同的路由发送,并在目的地重组
数据包 携带首部(地址、序号、校验)和有效载荷的数据单元
对等 没有中央服务器的文件分享,每台计算机既是客户端也是服务器
14.2

考试技巧

  • 为什么要协议:共同的规则、相同的解释、任何品牌的计算机。为什么分层:每层只做一件事,可以独立更换。
  • 四层从上到下的顺序:Application、Transport、Internet、Link。用一句话说出每层的任务,把"消息从主机到主机"的答案写成沿栈向下再向上的过程。
  • 协议的目的是一句话:HTTP 网页,FTP 文件,SMTP 发送邮件,POP3 下载邮件,IMAP 邮件留在服务器,BitTorrent 从群中对等获取片段。
  • 电路交换:先建专用路径、整个消息、持续期间保持。分组交换:拆分、带地址和序号的首部、独立路由、重组。优缺点成对出现、互为相反。
  • 路由器读取目的地址、查路由表、沿最佳路由转发;这是考试最常问的分组交换题。
  • "适用场合":电路交换用于电话或实时视频通话;分组交换用于电子邮件、网页和下载。

常见错误

  • 把协议定义为"一种语言"或"软件";它是一套规则。
  • 把各层顺序弄错,或给出 OSI 的七层而不是 TCP/IP 的四层。
  • 把传输层描述成"路由",或把网络层描述成"拆分成数据包";端口和拆分属于传输层,IP 地址和路由属于网络层。
  • 混淆 POP3 与 IMAP,或说 SMTP 接收邮件。
  • 描述分组交换时没有首部(地址和序号)或没有重组。
  • 说路由器"把数据包发到所有地方";它从路由表中选择一个下一跳。
  • 把分组交换的优点当作电路交换的缺点却不说电路交换那一边;每个区别都需要两半。
  • 声称分组交换本身保证送达;做到这一点的是传输层的序号和确认。

本主题的互动课程

逐步学习,并即时检测练习。

A-Level 计算机科学历年真题

A-Level 计算机科学的更多主题

登录或创建账号

IGCSE, A-Level & AP