计网:TCP

TCP和UDP

  • 都是运输层协议
  • tcp有连接,可靠:数据包校验、对失序数据包重排序、丢弃重复数据、应答机制、超时重传、流量控制。
  • udp无连接,快。只是传输数据,不管服务器是否收到。

TCP拥塞控制

防止过多数据注入到网络中,这样可以使网络中的路由器或链路不致过载。

  • 慢开始

把初始拥塞窗口cwnd设置为1或2个发送方的最大报文段(SMSS),由小到大逐渐增大发送窗口。每经过一个传输轮次,cwnd加倍。

把拥塞窗口允许发送的报文段都连续发送出去,收到对已发送的最后一个字节的确认,为一个传输轮次,时间为一个往返时间。

  • 拥塞避免

让拥塞窗口缓慢增大,没经过一个往返时间RTT就加1

  • 快重传

让发送方尽早知道发生了个别报文段丢失

  • 快恢复

发送方知道丢失报文段,则不启动慢开始,用快恢复,调整门限值cwnd/2.

TCP建立连接——三次握手

  1. 客户端发送连接请求报文,将SYN位置设为1
  2. 服务器端收到报文后回复ACK+SYN报文。
  3. 客户端接收到报文后也向服务器端发送ACK报文,这个报文发送完毕后,完成了三次握手。

    通过三次握手确认双方收发功能都正常,四次也可以但是显得比较多余。

TCP释放连接——四次挥手(断开连接)

  1. 客户端向服务器传送断开的请求包。客户端进入FIN_WAIT_1状态。
  2. 服务器端确定收到断开的请求,回复ACK报文。客户端进入FIN_WAIT_2状态。
  3. 服务器端向客户端FIN报文,请求关闭连接。服务器端进入LAST_ACK状态。
  4. 客户端收到FIN报文后,回复ACK报文。客户端进入TIME_WAIT状态。服务器端收到ACK报文就会关闭连接(不然一直处于LAST_ACK状态),客户端没有收到服务器端的回复,证明服务器端已关闭连接,客户端也可以关闭连接了。
-------------本文结束 感谢您的阅读-------------