这篇文章的数据来源都是网上或者GPT给的,我想就用来做个大致了解。
首先TCP是个传输协议,也就是个传输方式。下面是GPT给它的解释。
它是面向连接、可靠的、基于字节流的传输协议。
再说说它的特点
1. 面向连接:客户端和服务端之间传输数据需要先建立连接。数据传输完成后释放连接。
2. 可靠:TCP通过序列号、确认和重传机制确保数据可靠。即发送的每个数据包都有个编号,并且如果对方没有发送确认消息过来还会重发。
3. 流控制:接收方会告诉发送方我的接收能力,免得你把我干崩了
4. 拥塞控制:这个是为了防止由于网络问题导致丢包等后果。TCP会根据网络情况动态调整发送速率。
5. 面向字节流:发送方和接收方都是传输持续的字节流
6. 全双工通信:即发送方和接收方可以同时发送和接收数据,实现双向数据传输。
再来个TCP的三次握手
1. 客户端向服务端发送同步(SYN)报文
客户端先发出一个包含随机初始序列号的SYN报文,用来标识数据流的起始位置
SYN标志位(这个我也不懂,就是一个标记吧)记为1,表示一个连接请求
2. 服务器同意连接,发送确认(ACK)报文和同步(SYN)报文
ACK报文会将客户端发送的序列号加1作为确认号,表示服务器希望接收的下一个序列号
SYN标志位置为1,表示对客户端SYN报文的确认,同时表示服务器也要求建立连接
3. 客户端发送确认(ACK)报文
客户端收到服务端的两个报文,发送一个ACK报文来响应
这个ACK报文的确认号字段会将服务器发送的序列号加1作为确认号,表示客户端希望接收的下一个序列号
注意一下这三步走完TCP的建立就完成了,服务器不会再次把SYN标志位置为1。后面直接就进行数据传输了。
ok,先大致了解这么多,后面有其他的知识点我再加。有个大致认识。谢谢大家。