TCP---传输协议
是一种面向连接的可靠传输协议。可靠,有序,无丢失和无重复。
特点:
TCP是一种面向连接的传输协议
可靠,有序,无丢失和无重复
TCP是提供全双工通讯。
- 发送缓存
- 想要发送的应用层数据
- 已经发送但未收到确认的数据
- 接收缓存
- 按需到达但还未被应用程序提取的数据
- 乱序到达的数据
- TCP是面向字节流的。
确认序列号表明是接受方期望收到发送方发送的下一个字节的序号;且表示之前的所有数据均已接受。---->累计确认
ACK确认位:当ACK=1时,确认序列号有意义。在连接建立后所有传输的报文段都必须将该标记位置为1。
SYN同步位:代表连接请求
FIN终止位:表明此报文段发送方数据已发送完毕,要求重新建立传输连接。
RST复位:当TCP连接出现严重错误时,必须释放连接,然后重新建立传输连接。
URG紧急位:当URG=1时,表明此报文段中存在紧急数据,是高优先级数据,应尽快传输给应用层程序处理,不再缓存在排队。配合紧急指针使用。
PSH推送位:当PSH=1时,接收方应尽快交付数据给应用层程序,不再等待缓存填满再向上交付。
TCP的可靠性
排序机制
MTU---最大传输单元
MSS---最大段长度----TCP分段--->该参数是需要在TCP建立握手过程中通过前两次SYN报文段来进行协商确定。
RTT---往返时间
RTO---超时重传时间;略大于RTT时间--->动态变化的数值。加倍的形式进行变化。
在快速重传机制中,并不是因为RTO时间到达从而触发重传机制,该重传机制是根据对端的反馈信息进行重传,当连续3三收到相同的ACK报文时,发送端会重传数据。这3个连续的ACK报文被称为冗余ACK
流控---流量控制机制
窗口:指定的是无需等待确认应答,而可以继续发送数据包的最大值。
窗口大小体现在缓存区的大小。
TCP要求发送方依据窗口rwnd来控制数据的发送量。rwnd等于接收方接收缓存大小减去已存数据量大小,即rwnd变量是可变的。
TCP面向连接
TCP连接的建立
TCP建立连接而需要解决的问题
- 要求双方均知晓对方的套接字信息
- 允许双方进行参数协商(MSS,窗口值,是否使用选择确认机制)
- 给各设备进行资源分配
TCP连接释放
1、对双方各自资源的释放过程
2、任何一方都可以在数据传输结束后发送连接释放通知