TCP协议(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
它位于OSI模型的传输层,在IP协议之上,为应用层提供可靠的数据传输服务。
OSI模型
TCP协议通过三次握手建立连接,通过四次挥手断开连接,确保数据的可靠传输。TCP协议建立的连接是双向连接。
Source Port:源端口号 Destination Port:目标端口号 Data Offset:数据的偏移
Sequence Number(序列号):是一种唯一的数字或字母标识码。序列号具有全球唯一性,确保每个产品或软件实例都能被唯一识别。(Seq)
Acknowledgment Number(确认序列号):是接收方期望从发送方接收的下一个数据字节的序号。它用于TCP的可靠传输机制中,以确保数据的有序和完整传输。(Ackeq)
TCP使用序列号和确认序列号字段实现数据的可靠和有序传输。
6位标志位
SYN---同步位---是在TCP三次握手建立通道时的标记
ACK---确认位---当该标记位置为1时,确认序列号有意义
FIN---代表释放TCP连接
Window:窗口信息 Checksum:校验和(校验信息是否正确)
Urgent Pointer:紧急指针(与标志位URG联用)
有了TCP,Data不允许分片
TCP分段:因为IP分片后,TCP协议无法保证数据的可靠性传输;故而使用TCP协议进行封装的文件不允 许进行IP分片,而又因为MTU存在,需要将大文件分为小文件,该操作由TCP协议完成。
MSS---最大传输段===MTU-IP头部-TCP头部:指的是数据Data。
在TCP协议中,每一个报文都需要有序列号信息。
Seq(新)=Seq(原)+Data
一、主要特性:
1.面向连接:TCP在传输数据前,必须通过三次握手建立连接,确保双方都能正常通信(即在数据传输之前,收发双方需要预先建立一条逻辑通路)。
序列号和确认序列号作用:
1)确认接收:确认序列号表示接收方已成功接收到序号小于该值的所有数据字节,并向发送方发送确认信息。
2)流量控制:通过确认序列号,接收方可以告知发送方其接收窗口的大小,从而控制数据的发送速率,避免网络拥塞。
3)错误检测与重传:如果发送方在指定时间内未收到接收方对某个数据包的确认序列号,它将认为该数据包已丢失,并重新发送该数据包。
每消耗一个值seq/ackeq的值加1
TCP协议的核心机制
1)三次握手(建立连接)
2)四次挥手(断开重连)
MSL(120S):指一个数据包在网络中传递的最大时间。
2.可靠性:TCP通过确认应答、超时重传、排序机制、控流机制,确保数据的可靠传输。
1)确认机制----每收到一个TCP数据段,都需要发送一次确认报文。
2)重传机制----超时重传,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。
3)排序机制----传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱, 需要根据序列号字段进行重新排序。
4)流控机制(滑动窗口机制):可以通过调节窗口大小(Windows)来对流量进行控制
3.有序性:TCP会将接收到的数据按照发送顺序进行排序,确保数据的顺序性。
4.全双工通信:TCP允许数据在两个方向上同时传输,提高了通信效率。