TCP知识点
TCP------传输控制协议
是一种面向连接的可靠传输协议。可靠、有序、无丢失和无重复
特点:
●TCP是一种面向连接到传输协议
●每一条TCP连接有且只能存在两个端点,形成一种端到端的连接形式
●可靠、有序、无丢失和无重复
●TCP提供全双工通讯
○发送缓存
■ 想要发送的应用层数据
■ 已经发送但未收到确认的数据
○接受缓存
■ 按序到达但还未被应用程序提取的数据
■ 乱序到达的数据
● TCP是面向字节流的
源IP、源端口、目的IP、目的端口-------->TCP会话的四元组信息。
确认机制-----传输确认,每接收到一个数据段,都需要进行一次确认
重传机制----超时重传,当一个数据段中的某一个包丢失,会提示要求重新传输这个报文
排序机制----传输一个报文,可能会被分为多个数据包,并从不同路径传输,最终达到目的地的顺序会被 打乱,需要进行重新排序。-----重新排序依靠TCP的序号字段
流控机制(滑动窗口机制):通过调节窗口大小来对流量进行控制。
窗口大小:指无需等待确认就可以连续发送的数据的最大量。
TCP为了保证自身的可靠性,具备重传机制,故不允许在网络层进行IP分片。而TCP会在传输层使用分 段的方式将报文大小分割成满足网络层MTU数值的大小,以保证不会被网络层分片。
MSS(最大传输段)===MTU-IP头部-TCP头部
PMTU----路径MTU发现协
确认序列号:接收方期望收到发送方发送的下一个字节的序号
1.接收方希望接收到的报文序号
2.该序号之前的数据以全部接收
累积确认机制
选项字段:长度可变,MSS数值,窗口扩大因子,时间戳,选择确认机制
确认位ACK:当ACK=1时,确认号有意义。在连接建立以后,所有传输的报文段都必须将该标志位置为1
同步位SYN:SYN=1时,代表该数据段是一个连接请求报文。
终止位FIN:当FIN=1时,表明此报文段发送方数据已发送完毕,要求释放连接。
紧急位URG:代表该报文中存在高优先级的数据,应尽快处理。需要配合紧急指针使用。
推送位PSH:接收方应尽快将接收到的数据交付给对应应用程序。
TCP要求发送方依据rwnd发送数据量
发送方的发送窗口
TCP连接连接需要解决的问题:
1、知晓对端的套接字信息
2、允许双方进行参数的协商窗口值选择确认机制、是否使用窗口扩大因子)
3.对设备进行资源分配
当TCP连接建立成功,但是客户端突发故障
此时服务端会等到两小时时间,若两小时时间内没有收到任何客户端的数据,则服务器端发送一个探测报文 ,以后每隔75s发送一次,若一连
TCP连接释放
1.TCP连接的释放实际上是在释放本地分配给TCP连接的资源
2.本地没有新的数据需要发送