TCP总结

本文详细介绍了TCP协议的特点,如面向连接、全双工通信、确认机制、窗口管理以及连接建立过程。重点讲解了确认序列号、重传策略(包括快速重传和选择确认机制)、MTU和RTO的概念。
摘要由CSDN通过智能技术生成

#### TCP---传输控制协议

<font color='red'>**是一种面向连接的可靠传输协议**</font>。可靠、有序、无丢弃和不重复。

特点:

- TCP是面向连接(虚连接)的传输层协议

- 每一条TCP连接有且只能有两个端点。

- 可靠、有序、无丢弃和不重复。

- TCP协议提供**全双工通讯**。

  - 发送缓存

    - 存放发送方TCP准备发送的数据。

    - TCP已发送但是没有收到确认的数据。

  - 接收缓存

    - 存放发送端发送来的不按照顺序到达的数据

    - 按照顺序到达的数据,但并未被应用程序读取

- TCP是<font color='red'>**面向字节流**</font>的。TCP将应用层数据仅看做是一串无结构的字节流。

```

TCP连接的四元组(源IP、源端口、目IP、目端口)--->唯一标识一条TCP连接。

套接字--->IP:port

```

![image-20240111111359118](https://hwh-1258460726.cos.ap-nanjing.myqcloud.com//typora-pic/image-20240111111359118.png)

**确认序列号:接收方期望收到发送方发送的下一个字节的序号**。1.接收方希望接收到的报文序号;2.该序号之前的数据以全部接收。-----**累积确认机制**。

选项字段:长度可变。MSS数值、窗口扩大因子、时间戳、选择确认机制。

```

确认位ACK:当ACK=1时,确认号有意义。在连接建立以后,所有传输的报文段都必须将该标志位置为1.

同步位SYN:SYN=1时,代表该数据段是一个连接请求报文。

终止位FIN:当FIN=1时,表明此报文段发送方数据已发送完毕,要求释放连接。

复位RST:表明TCP连接出现严重错误,需要释放连接并重新建立连接。

紧急位URG:代表该报文中存在高优先级的数据,应尽快处理。需要配合紧急指针使用。

推送位PSH:接收方应尽快将接收到的数据交付给对应应用程序。

```

![TCP序号示例](https://hwh-1258460726.cos.ap-nanjing.myqcloud.com//typora-pic/TCP序号示例.png)

![image-20240111112617618](https://hwh-1258460726.cos.ap-nanjing.myqcloud.com//typora-pic/image-20240111112617618.png)



 

##### TCP的可靠性

​ <font color='red'>**确认、重传、排序、流控**</font>。

```

MTU:最大传输单元--->以太网环境下1500字节--->数据包大小。

MSS:最大数据段长度

```

```

RTT--->往返时间(指发出端将数据发送后,到本端接收到对端反馈的确认报文的时间总和)

RTO--->超时重传时间

RTO取值略大于RTT值。

快速重传机制--->根据接收方的反馈信息进行数据重传。客户端需要连续接收到三次确认序列号相同的ACK报文,则认为数据丢失,需要进行数据重传。

  快速重传机制会导致部分数据重复传输,降低数据传输效率。

解决思路:使用选择确认机制。--->在TCP首部的选项字段中,添加上未接收到的数据信息。发送方接收到该确认报文后,会根据选项字段内容,重新传输缺少的数据部分。

  选择确认机制是否可以执行是需要通讯双方进行协商的。--->在三次握手的前两次SYN报文中进行协商。

```

<font color='red'>**RTO数值是动态变化的数值**</font>。**超时间隔加倍**。

```

窗口:窗口的大小是可以指定的,窗口大小指的是无需等待确认报文,而可以直接发送的数据包的最大值。

  rwnd(接收窗口)---最开始等于整个缓存区的大小,浮动变化。

```

​ **TCP要求发送方依据rwnd发送数据量**。发送方的发送窗口大小是依据接收方的反馈信息中的接收窗口大小而设定的。

![TCP发送方窗口队列图](https://hwh-1258460726.cos.ap-nanjing.myqcloud.com//typora-pic/image-20240121103546000.png)





 

###### TCP连接的建立

```

TCP连接连接需要解决的问题:

1、知晓对端的套接字信息

2、允许双方进行参数的协商(窗口值、选择确认机制、是否使用窗口扩大因子)

3、对设备进行资源分配

```



 

```

当TCP连接建立成功,但是客户端突发故障。

此时服务端会等到2小时时间,若2小时时间内没有收到任何客户端的数据,则服务端发送一个探测报文,以后每隔75秒发送一次。若一连发送10次仍没有回复,则服务器认为客户端出现故障,关闭连接。

```

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值