一、TCP协议
TCP协议一种面向连接的、可靠的传输层通信协议。TCP主要用于在不可靠的网络环境中提供可靠的数据传输服务。(它位于OSI参考模型的第四层—网络层)
二、TCP的主要特点
1.面向连接:TCP通信收发双方需要预先建立一条逻辑通路,确保数据传输的可靠性。(注:上图为客户端与数据端如何搭建连接,即三次挥手)
(注:上图为断开连接的过程,即四次挥手)
2.可靠性
Ⅰ.确认机制----每收到一个TCP数据段,都需要发送一次确认报文。
Ⅱ.重传机制----超时重传,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。
Ⅲ.排序机制----传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱,需要根据序列号字段进行重新排序。
Ⅳ.流控机制(滑动窗口机制):可以通过调节窗口大小(Windows)来对流量进行控制
3.流控制 :TCP使用流控制机制来调节发送速度,避免快速发送方导致慢速接收方无法处理的情况。
4.拥塞控制 :TCP具有拥塞控制功能,当网络拥堵时,它会降低发送速率以保护网络的稳定性。
5.全双工通信 :TCP支持双向同时发送和接收数据,提高了通信效率。
6.面向字节流 :TCP不关心数据的边界,数据被分割成小块,接收端再重组这些数据块。
三、TCP工作原理
1.连接建立 :客户端发送SYN报文给服务器,服务器回复SYN+ACK报文确认连接请求,最后客户端发送ACK报文确认连接建立。
2..数据传输 :数据被分割成小的数据段,每个段包含序号和确认号,以确保数据的顺序和完整性。
3.窗口管理:接收端通过发送窗口大小来告诉发送端可以发送多少数据,以适应网络状况和接收端的处理能力。
4.超时重传机制:如果某个数据端未被确认,发送端会重传该段,若重传多次仍然未成功,则认为该段丢失,并通知上层处理。
四、TCP场景应用
Web浏览 :HTTP协议是基于TCP的,用于在Web浏览器和服务器之间传输HTML页面和其他资源。
电子邮件 :SMTP协议是基于TCP的,用于在邮件客户端和邮件服务器之间传输电子邮件。
文件传输 :FTP协议是基于TCP的,用于在文件服务器和客户端之间传输文件。
远程登录 :例如通过SSH协议进行远程主机访问,TCP保证了数据的安全传输。
实时通信 :尽管TCP不是专门设计用于实时通信的,但其可靠性使其适合于某些实时应用,如视频会议和在线游戏。
数据备份 :TCP可以确保数据在备份过程中不会丢失或 损坏。
数据采集 :工业自动化和物联网系统中,TCP用于从传感器和其他设备中收集数据。
数据同步 :在分布式系统中,TCP用于同步不同节点间的数据。
五、TCP的优劣势
1.优势:
Ⅰ.可靠性高 :
TCP通过三次握手建立连接,确保连接的可靠性。
提供数据确认、重传机制,确保数据的完整性和准确性。
Ⅱ.流量控制和拥塞控制 :
TCP具有流量控制机制,可以防止发送方发送过多数据导致接收方处理不过来。
拥塞控制机制可以动态调整发送速率,避免网络拥塞。
Ⅲ.广泛应用于关键应用 :
HTTP、HTTPS、FTP、POP、SMTP等重要协议均基于TCP,确保数据传输的安全和准确性。
2.劣势:
Ⅰ.慢,效率低 :
建立连接需要三次握手,增加了延迟。确认、重传、拥塞控制等机制消耗大量时间和系统资源。
Ⅱ.占用系统资源高 :
每个TCP连接都需要维护状态信息,占用CPU和内存资源。
Ⅲ.易受攻击 :
TCP的确认机制和三次握手机制使其容易受到DOS、DDOS、CC等攻击。