Browsed by
月份:2019年12月

TCP 超时与重传

TCP 超时与重传

上一篇介绍 TCP 的文章TCP 三次握手,四次挥手和一些细节」反馈还不错,还是蛮开心的,这次接着讲一讲关于超时和重传那一部分。

我们都知道 TCP 协议具有重传机制,也就是说,如果发送方认为发生了丢包现象,就重发这些数据包。很显然,我们需要一个方法来猜测是否发生了丢包。最简单的想法就是,接收方每收到一个包,就向发送方返回一个ACK,表示自己已经收到了这段数据,反过来,如果发送方一段时间内没有收到 ACK,就知道很可能是数据包丢失了,紧接着就重发该数据包,直到收到 ACK 为止。

你可能注意到我用的是「猜测」,因为即使是超时了,这个数据包也可能并没有丢,它只是绕了一条远路,来的很晚而已。毕竟 TCP 协议是位于传输层的协议,不可能明确知道数据链路层和物理层发生了什么。但这并不妨碍我们的超时重传机...

阅读全文 Read More
TCP 三次握手,四次挥手和一些细节

TCP 三次握手,四次挥手和一些细节

上一次讲了 UDP 协议,从这次开始,就要讲 TCP 协议了,因为 TCP 协议涉及到的东西很多,一篇文章概括不完,所以我把 TCP 协议的内容分成好几个部分,逐个击破。

TCP 报文段结构

一谈到 TCP 协议,大家最先想到的词就是面向连接可靠。没错,TCP 协议的设计就是为了能够在客户端和服务器之间建立起一个可靠连接。

在讲连接过程之前,我们先来看看 TCP 的报文段结构,通过这个结构,我们可以知道 TCP 能够提供什么信息

这里有几点是需要注意的

  • TCP 协议需要一个四元组(源IP,源端口,目的IP,目的端口)来确定连接,这要和 UDP 协议区分开。多说一句,IP 地址位于 IP 报文段,T...
阅读全文 Read More