CAIE IGCSE CS revision - Unit 2 (2023)
如遇到公式加载异常,请刷新页面!
Unit 2 Data transmission 数据传输
2.1 Types and methods of data transmission 数据传输的类型和方法
- 大纲要求
2.1.1 (a) Understand that data is broken down into packets to be transmitted 理解数据被分解成数据包进行传输
- Data packets:数据包。数据在传输过程中通常会被拆分成多个数据包进行分别传输,最后再整合、恢复成原有数据。
- 拆分原因:
- Small. 文件更小。
- Easier to control. 便于传输中的控制。
- Each packet can be sent along a different route to its destination. 每个数据包可以通过不同路径传输,减少传输时间。
- 拆分原因:
2.1.1 (b) Describe the structure of a packet 描述数据包的结构
• A packet of data in a unit of data contains a数据单元中的数据包包含
- packet header数据包头部
- payload有效负载
- trailer 尾部
• The packet header includes the: 包头包括:
- destination address目的地地址
- packet number包号
- originator’s address 初始者地址
- 数据包结构:
- Packet header:数据包头部。
- 头部中的内容包括:
- IP address of the resource device (sender) 发送者的IP地址
- IP address of the destination device (receiver) 收件者的IP地址
- sequence number of the packet数据包的序列号(方便最后的整合排序)
- size of the packet数据包的大小
- 头部中的内容包括:
- Payload:有效负载,指需要传输的实际数据。
- Trailer:数据包尾部。
- 尾部中的内容包括:
- method of identifying the end of the packet用于鉴别数据包结束的方法
- form of error checking检验错误的方式(用于确保数据包中的内容被准确传输)。
- 尾部中的内容包括:
- Packet header:数据包头部。
2.1.1 (c) Describe the process of packet switching 描述分组交换的过程
• Data is broken down into packets 数据被分解成数据包
• Each packet could take a different route 每个数据包可以走不同的路线
• A router controls the route a packet takes 路由器控制数据包采用的路由
• Packets may arrive out of order 数据包可能会乱序到达
• Once the last packet has arrived, packets are reordered 一旦最后一个数据包到达,数据包将重新排序
- Packet switching:分组交换,是数据包传输的一种方式。主要特点是由多个router路由器构成网状结构,可进行多路径传输。
- 具体操作:多个router路由器节点构成传输的路径,数据包可能会经由不同路径前往目的地。对方通过检查数据包编号以确定是否传输完毕(可能会乱序到达)。一旦传输完毕,则会按照数据包编号排序并整合,获得传输来的数据。具体过程如下图所示:
- 注意:为了防止数据包在路由器中反复传输而找不到目的地的情况,packet header头部里通常会设置一个hopping number跳跃数,每在路由器中传输一次,跳跃数便减1。当跳跃数减为0,但下一次跳跃仍未到达目的地时,该数据包按照未送达处理,从路由器中被删除。由于没有接收到该数据包,接收方服务器稍后会要求发送方重新发送该数据包。
- Packet switching分组交换的好处:
- No need to tie up a single communication line. 无需建立单一的传输路径。
- It is possible to overcome failed, busy or faulty lines by simply re-routing packets. 能够克服单线传输中的传输失败、线路繁忙、线路错误等问题。
- Relatively easy to expand package usage. 扩展数据包相对容易(可传输更多数据包)。
- A high data transmission rate is possible. 高传输率(可尝试多种线路)。
- Packet switching分组交换的缺点:
- Packets can be lost and need to be re-sent. 数据包可能丢失(“丢包”现象),需要重新传输。
- The method is more prone to errors with real-time streaming.实时传输中容易出错。
- There is a delay at the destination whilst the packets are being re-ordered.数据包需要重新排序,可能导致数据获取延迟。
2.1.2 (a) Describe how data is transmitted from one device to another using different methods of data transmission 描述如何使用不同的数据传输方法将数据从一个设备传输到另一个设备
• Including: 包括:
- serial串行
- parallel并行
- simplex单向
- half-duplex半双向
- full-duplex 全双向
- Transmission mode:传输模式。常见的数据传输模式包括以下类型:
- 按传输方向分类:
- Simplex:单向传输。数据只能按一个方向进行传输,不能反向进行。
- Half-duplex:半双向传输。数据可以进行双向传输,但无法同时进行(每个时间段内是单向,但不同时间段可以更换方向)。
- Full-duplex:全双向传输。数据可以随时进行双向传输。
- 按传输通道数量分类:
- Serial:串行传输。数据传输的通道仅有一个。如下图所示:
- 按传输方向分类:
- Parallel:并行传输。数据传输的通道有多个,能够同时使用多通道进行数据传输。
2.1.2 (b) Explain the suitability of each method of data transmission, for a given scenario 解释每种数据传输方法对于给定场景的适用性
• Including the advantages and disadvantages of each method 包括每种方法的优点和缺点
- Serial串行传输
- 好处:
- work well over long distances适合长距离数据传输
- full synchronised接收端与发送端的数据完全同步,顺序不会乱。
- cheap便宜
- 缺点:
- Slow传输速度慢
- 好处:
- Parallel并行传输
- 好处:
- work well over short distances适合短距离数据传输
- fast传输速度快
- 缺点:
- become skewed (out of order) over long distances长距离数据传输时容易出现偏差(数据到达顺序有先后,容易出现错乱)
- expensive昂贵
- 好处:
2.1.3 Understand the universal serial bus (USB) interface and explain how it is used to transmit data 了解通用串行总线(USB)接口并解释它如何用于传输数据
• Including the benefits and drawbacks of the interface 包括界面的优点和缺点
- Universal serial bus (USB):通用串行总线,是一种通过串行传输数据的方式,允许half-duplex半双向或full-duplex全双向数据传输。其结构如下图所示:
- USB的好处:
- Devices plugged into the computer are automatically detected and device drivers are automatically loaded up. 设备可以自动被检测到,驱动也可以自动加载(“即插即用”技术)
- Connections can only fit one way preventing incorrect connections being made. 单向插入的设计可避免错误插入导致的问题
- It has become an industry standard, which means considerable support is available. 已经成为行业标准,有后续支持
- Can support different data transmission rates (from 1.5 Mbps to 5 Gbps). 可以支持多种数据传输率
- No need for external power source since cable supplies +5V power. 无需外部电源(接线可提供5V的电压)
- USB protocol notifies the transmitter to re-transmit data if any errors are detected; this leads to error-free data transmission. 有错误时可以及时要求重新传输,以确保数据的准确性
- It is relatively easy to add more USB ports if necessary, by using USB hubs. 通过USB拓展坞可以增加更多的插口
- USB is backward compatible (that is, older versions are still supported). 向下兼容(支持老版本)
- USB的缺点:
- Standard USB only supports a maximum cable length of 5 m; beyond that, USB hubs are needed to extend the cable length. 接线最多支持5m,超过该长度则需要通过拓展坞来实现
- Even though USB is backward compatible, very early USB standards (V1) may not always be supported by the latest computers. 尽管向下兼容,但非常早期的版本可能仍然难以使用
- Even the latest version 3 (V3) and version 4 (V4) USB-C systems have a data transfer rate which is slow compared to, for example, Ethernet connections (Note: USB V2 has a maximum data transfer rate of 480 Mbps.). 即使是最新版本,传输速率仍慢于一些其他传输方式(如以太网)
- USB的好处:
2.2 Methods of error detection 错误检测方法
- 大纲要求
2.2.1 Understand the need to check for errors after data transmission and how these errors can occur 了解数据传输后需要检查错误以及这些错误是如何发生的
• Errors can occur during data transmission due to interference, e.g. data loss, data gain and data change 由于干扰,数据传输过程中可能会出现错误,例如数据丢失、数据增益和数据更改
- 数据在传输过程中可能导致数据出错(loss丢失、gain增加或change更改),因此在传输后需要对数据的准确性进行检查。
- 发生错误的常见原因:
- Interference (electrical interference) 干扰(比如电磁干扰等)
- Problems during packet switching 分组交换传输时出现问题
- Skewing of data 数据偏差(parallel并行传输时容易出现该问题)
2.2.2 Describe the processes involved in each of the following error detection methods for detecting errors in data after transmission: parity check (odd and even), checksum and echo check 描述以下每种错误检测方法在传输后检测数据错误所涉及的过程:奇偶校验、和校验和回声校验
• Including parity byte and parity block check 包括奇偶字节和奇偶块校验
- Parity check:奇偶校验,指在数据中加入一个校验值,通过该数字的奇偶来判断是否出现错误。
- 校验过程:
- 数据发送方在数据的最高位加入一个parity bit奇偶位。如果数据中的1为偶数个,该位为0;如果数据中的1为奇数个,该位为1。
- 数据接收方获取数据后,重新清点数据中1的个数,并与该parity bit进行对比。如果奇偶性质一致,则认为数据准确;如果奇偶性质不一致,则认为数据发生错误。如下图所示:
- 校验过程:
- 注意:传输前的数据中含有偶数个1,因此parity bit赋值为0。传输后的数据中含有奇数个1,因此与传输来的parity bit性质不符,说明发生了数据传输错误。
- 本方法的缺点:
- 如果恰好有偶数个数位发生了错误,则奇偶校验位不会变化,无法发现错误。
- 即使确定数据出错,也难以判断具体是哪个数据发生了错误。
- Parity block check:奇偶块校验,指对一组数据进行校验。在数据的横纵方向均加入一个校验值,通过该数字的奇偶来判断是否出现错误以及错误的位置。
- 校验过程:
- 数据发送方在每个数据的最高位加入一个parity bit奇偶位。如果数据中的1为偶数个,该位为0;如果数据中的1为奇数个,该位为1。
- 数据发送方会同时发送一个parity byte奇偶字节,即对每组数据纵向判定的奇偶位的集合。如下图所示。
- 数据接收方获取数据后,重新清点数据中1的个数,并与每个数据的parity bit以及parity byte进行对比。如果奇偶性质一致,则认为数据准确;如果奇偶性质不一致,则认为数据发生错误。
- 根据发生错误的行数和列数,能够确定发生错误的位置。如下图所示:
- 校验过程:
- 注意:传输后的数据中,Byte 8和Bit 5中因为1的个数与奇偶位性质不符,说明均发生了错误。二者交叉点即为错误发生的位置。
- 注意:本方法虽然比parity check略有改进,能够一定程度上确定错误发生的位置,但仍然难以避免多次错误造成奇偶位没有发生变化的情况。
- Checksum:和校验,指对数据进行特殊的和运算,通过对比传输前后的和数据,来判定是否出现错误。
- 校验过程:
- 发送方和接收方提前确定好对数据进行和计算的算法。
- 发送方按照指定算法计算好待发送数据的和,在发送数据的同时也将和发送给对方。
- 接收方接收到数据后,按照指定算法计算好接收数据的和,并与发送方提供的和进行比较。如果二者相同,则认为数据准确;如果二者不同,则认为数据发生错误。
- 校验过程:
- Eco check:回声校验,指接收方收到数据后回传发送者,以检验数据准确性的校验方法。
- 校验过程:
- 发送方发送数据。
- 接收方收到数据后,将收到的数据回传给发送方。
- 发送方检查回传的数据中是否有错误。如果有,则重新发送数据。
- 校验过程:
2.2.3 Describe how a check digit is used to detect errors in data entry and identify examples of when a check digit is used, including international standard book numbers (ISBN) and bar codes 描述如何使用校验位来检测数据输入中的错误并识别何时使用校验位的示例,包括国际标准书号 (ISBN) 和条形码
- Check digit:校验位,指通过其他数位计算得出的数位,用于校验其他各个数位的数值是否准确。
- 例子:ISBN国际标准书号,bar codes条形码
- ISBN 13:国际标准书号,目前是13位(以前曾是10位),其中最后一位是check digit。
- 获取check digit的算法:
- 将前12位数字中的奇数位相加。
- 将前12位数字中的偶数位相加,然后将算出的和乘3。
- 将上述两项的计算结果加总。
- 将上述加总的数除10后,得到余数。
- 如果余数为0,则check digit为0;如果余数不为0,则用10减去该余数,得到的差记为check digit。
- 计算示例如下图所示:
- 获取check digit的算法:
- 校验过程:按照上面的算法进行计算,如果和check digit的数值相同,则认为数据准确,否则认为数据出现错误。
- Modulo 11(本大纲按照7 bits来学习)
- 获取check digit的算法:
- 将数据当中从左至右每一位赋weight权重:8,7,6,5……
- 将数位中的数值与权重相乘后,计算加总后的和。
- 将上述得到的和除11,取余数。
- 用11减去余数,得到的差即为check digit。(如果差为10,则记为X)
- 将check digit放入数据的最右侧(末位)。
- 计算示例如下图所示:
- 获取check digit的算法:
- 校验过程:
- 将包含check digit的数值从左至右每一位赋weight权重:8,7,6,5……
- 将数位中的数值与权重相乘后,计算加总后的和。
- 将上述得到的和除11,取余数。
- 如果余数为0,则认为数据准确;如果余数不为0,则认为数据存在错误。
- 校验示例如下图所示:
- 校验过程:
2.2.4 Describe how an automatic repeat query (ARQ) can be used to establish that data is received without error 描述如何使用自动重复查询(ARQ)来确定数据接收无误
• Including the use of: 包括使用:
- positive/negative acknowledgements肯定/否定确认
- timeout 超时
- automatic repeat query (ARQ):自动重复查询,通过从接收端收取肯定反馈来确保数据接收无误的校验方法。
- 如果接收方没有发现错误,则向数据发送方发送positive acknowledgement肯定确认。数据发送方接收到该肯定确认,则认为数据准确传输。
- 如果接收方发现错误,则向数据发送方发送negative acknowledgement否定确认。数据发送方接收到该否定确认,则会重新发送数据。双方重复上述确认过程,直到数据准确传输。
- 人们通常会设定一个确认收取的时限,如果数据发送方在规定时限内未接收到数据接收方的任何确认,则称为timeout超时。此时数据发送方默认对方未收到数据,会重新发送该请求。数据发送方会重复上述过程,直到数据准确传输。
2.3 Encryption 加密
- 大纲要求
2.3.1 Understand the need for and purpose of encryption when transmitting data 了解传输数据时加密的必要性和目的
- 传输数据时,通过加密可以减少数据被他人非法获取、篡改的可能性(比如防止被黑客入侵),最大限度保护数据的完整性和安全性。
2.3.2 Understand how data is encrypted using symmetric and asymmetric encryption 了解如何使用对称和非对称加密对数据进行加密
• Asymmetric encryption includes the use of public and private keys 非对称加密包括使用公钥和私钥
- Plaintext:明文,指没有被加密时的数据。
- Ciphertext:密文,指被加密后的数据。
- Key:钥,指通过加密算法计算出的文件加密方式。
- 加密过程:数据发送方通过encryption algorithm加密算法计算出encryption key密钥,并使用密钥对明文进行加密,形成密文。数据接收方获得密文后,再使用相应密钥对密文进行解密,获得相关的明文。如下图所示:
- Symmetric encryption:对称加密,指数据发送方和接收方使用同一密钥进行加密或解密的加密方式。
- 对称加密的缺点:
- Easier to crack比较容易破解。(应对方式为加长密钥位数,如使用256-bits密钥)
- Have to keep the key as a secret. 双方必须对密钥严格保密。(但双方如何安全传递密钥也成为一大难题,因为密钥有可能在传递过程中被黑客拦截或修改)
- 对称加密的缺点:
- Asymmetric encryption:非对称加密,指数据发送方和接收方使用不同的密钥进行加密或解密的加密方式。
- Public key:公钥,指的是可以对外公开、任何人都能获取到的密钥。
- Private key:私钥,指的是仅有一方知晓的密钥。(注意:公钥和私钥是成对出现的)
- 非对称加密的加密过程:
- 数据接收方将public key公钥发送给数据发送方。
- 数据发送方通过获得的public key公钥将文件加密后,将密文发送给数据接收方。
- 数据接收方获取到密文后,用自己手中与public key公钥配对的private key私钥对文件进行解密,获得明文。