1. 定义
Transmission Control Protocol
,即 传输控制协议。
- 属于 传输层通信协议
- 基于 TCP 的应用层协议有 HTTP、SMTP、FTP、Telnet 和 POP3
- 优点 数据传输可靠
- 缺点 效率慢(因需建立连接、发送确认包等)
要求通信数据可靠时,即 数据要准确无误地传递给对方。
- 万维网:
HTTP
协议 - 文件传输:
FTP
协议 - 电子邮件:
SMTP
协议 - 远程终端接入:
TELNET
协议
- TCP建立连接需 三次握手
- 具体介绍如下
成功进行TCP的三次握手后,就建立起一条TCP连接,即可传送应用层数据
注:
- 因 TCP 提供的是全双工通信,故通信双方的应用进程在任何时候都能发送数据
- 三次握手期间,任何1次未收到对面的回复,则都会重发
- 在通信结束后,双方都可以释放连接,共需 四次挥手
- 具体如下:
6.1 为什么 TCP 建立连接需三次握手?
-
结论 防止服务器端因接收了早已失效的连接请求报文,从而一直等待客户端请求,最终导致形成死锁、浪费资源。
-
具体描述
SYN洪泛攻击:
- 从上可看出:服务端的TCP资源分配时刻 = 完成第二次握手时;而客户端的TCP资源分配时刻 = 完成第三次握手时
- 这就使得服务器易于受到SYN洪泛攻击,即同时多个客户端发起连接请求,从而需进行多个请求的TCP连接资源分配
6.2 为什么 TCP 释放连接需四次挥手?
-
结论 为了保证通信双方都能通知对方 需释放 & 断开连接
-
具体描述
延伸疑问:为什么客户端关闭连接前要等待2MSL时间?
- 即 TIME - WAIT 状态的作用是什么;
- MSL = 最长报文段寿命(Maximum Segment Lifetime)
6.3 TCP 协议与 UDP 协议的区别?