MST

星途 面试题库

面试题:网络编程之TCP Socket数据传输完整性基础

在TCP Socket编程中,简要描述确保数据传输完整性的常用机制有哪些,并说明其工作原理。
44.6万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试

确认机制(ACK)

  • 工作原理:接收方在接收到数据后,会向发送方发送确认报文(ACK),表明已经成功接收数据。发送方在发送数据后,会启动一个定时器,如果在规定时间内没有收到对应的ACK,就会重发该数据。例如,发送方发送数据段1,接收方成功接收后回复ACK1,若发送方未收到ACK1,超时后会重发数据段1。

序列号(Sequence Number)

  • 工作原理:发送方在发送数据时,会为每个数据段分配一个唯一的序列号。接收方根据序列号对收到的数据进行排序,以确保数据按照正确的顺序组装。例如,发送方依次发送序列号为1、2、3的数据段,接收方根据序列号将其组装成正确的数据流。

窗口机制

  • 工作原理:接收方通过通告窗口大小告知发送方自己当前能够接收的数据量。发送方根据接收方的窗口大小来控制发送数据的量,避免发送过多数据导致接收方缓冲区溢出。例如,接收方通告窗口大小为1000字节,发送方就会在未收到新的窗口通告前,最多发送1000字节的数据。

重传机制

  • 工作原理:结合确认机制和定时器,如果发送方在设定的时间内没有收到接收方的确认报文(ACK),就会重传未被确认的数据。此外,当发送方收到重复的ACK时,也可能触发快速重传机制,不等定时器超时就重传数据。例如,发送方发送数据段2后,定时器超时未收到ACK2,就会重传数据段2;若发送方连续收到3个ACK1,也会快速重传数据段2。