MST

星途 面试题库

面试题:网络编程之TCP/IP协议栈广域网传输基础

在广域网环境下,简述TCP协议是如何保证数据可靠传输的,涉及哪些关键机制?
31.1万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试

确认机制

  1. 工作原理:接收方收到数据后,会向发送方发送确认报文(ACK),告知发送方数据已成功接收。发送方只有在收到对应的ACK后,才会认为该数据段已被成功接收。
  2. 作用:确保发送方知晓数据的接收情况,避免数据丢失。例如,若发送方发送了数据段1,接收方正确接收后返回ACK1,发送方收到ACK1就确认数据段1传输成功。

重传机制

  1. 超时重传:发送方在发送数据时,会启动一个定时器。若在定时器设定的时间内没有收到接收方的ACK,就会重新发送该数据段。例如,发送方发送数据段2,启动定时器,若超时未收到ACK2,则重发数据段2。
  2. 快速重传:当接收方检测到数据缺失时,会重复发送之前数据段的ACK。若发送方连续收到多个相同ACK,就知道中间有数据段丢失,不等定时器超时就重传该数据段。例如,接收方收到数据段3、5,缺失数据段4,就会连续发送ACK3,发送方收到多个ACK3后,重发数据段4。

校验和机制

  1. 工作原理:在数据传输前,发送方会根据数据内容计算一个校验和,并将其附加在数据段中。接收方收到数据后,采用相同算法重新计算校验和,并与接收到的校验和进行比较。
  2. 作用:如果两者不一致,说明数据在传输过程中发生了错误,接收方会丢弃该数据段,发送方会通过重传机制重新发送。

窗口机制

  1. 滑动窗口:发送方和接收方都有一个滑动窗口,窗口大小表示可以接收或发送的数据量。发送方在窗口内的数据可以连续发送,而无需等待每个数据段的ACK。随着ACK的到来,窗口会向前滑动。例如,初始窗口大小为3,发送方可以连续发送数据段1、2、3,收到ACK1后,窗口向前滑动,可继续发送数据段4。
  2. 流量控制:接收方通过调整窗口大小来告知发送方自己的接收能力,防止发送方发送数据过快导致接收方缓冲区溢出。例如,接收方缓冲区快满时,减小窗口大小告知发送方少发数据。
  3. 拥塞控制:发送方根据网络拥塞情况动态调整窗口大小。当网络出现拥塞时,发送方会降低发送速率,避免网络进一步拥塞。例如,采用慢开始、拥塞避免、快重传、快恢复等算法来调整窗口大小。