当前位置:首页 > 问答 > TCP如何实现可靠传输

TCP如何实现可靠传输

2024年11月30日 14:27

TCP通过以下机制实现可靠传输: 1. **数据报校验**:数据链路层利用差错检测(冗余校验)保证数据的完整性,TCP的序列号和确认号确保数据不会丢失。 2. **滑动窗口机制**: - **对失序数据报重排**:通过滑动窗口来对失序的数据报进行重排。 - **处理重复数据**:借助序列号和确认号找到重复的数据并丢弃。 - **暂存数据**:数据发送后,数据报先放在滑动窗口中,直至收到响应报文才丢弃,这有助于超时重传的实现。同时,滑动窗口也可控制发送的流量,窗口越小,发送流量越少,反之越多。 - **流量控制**:TCP连接双方都有固定大小的缓存空间(滑动窗口),能根据网络拥堵情况以及对方接收情况来控制发送速率,接收方通过发送确认报文中的窗口字段来控制发送方的窗口大小,告知发送方自己能接收的数据吞吐量。 3. **应答机制**:只有收到确认后才继续发送数据报。 4. **超时重传(ARQ)**:若不能及时收到确认,或确认号指明只接收到原先的数据,就会将数据报重传。ARQ分为停止等待ARQ和连续ARQ协议。停止等待是指数据报发送后需停下来等待接收方响应报文才能继续发送,未收到响应就得重新发送;为提高信道利用率,发送方维持发送窗口,位于窗口内的分组可连续发送,接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表示这个分组及之前的分组都已收到。 5. **拥塞避免**:拥塞控制采用了慢开始、拥塞避免、快重传和超时重传四种算法。慢开始即主机开始发送数据时,为避免大量数据注入网络造成阻塞,先从小数据量开始试探,并翻倍增大发送量;拥塞避免是当发送的数据量到达可能造成拥塞的点时,减少数据的增大量,每次仅增加一个数据报而非翻倍。 6. **确认机制**:接收方通过确认来告知发送方已经正确接收数据,TCP默认使用累计确认,并且采用自适应算法动态改变重传时间RTTs(加权平均往返时间)。另外,当比期望序号大的失序报文段到达时,发送方会收到冗余ACK(冗余确认),指明下一个期待字节的序号,若发送方收到一定数量(如3个)对于某个报文段的冗余ACK,则认为下一个报文段丢失,从而重传该报文段。
热门搜索更多 >
  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • X
  • Y
  • Z