TCP定义
transmission control protocol,传输控制协议
TCP功能
- 面向连接
- 可靠传输
- 流量控制
- 多路复用
TCP原理
面向连接(三次握手,四次挥手)
三次握手
- PROT 5000 -> TCP SYN(80) -> www.baidu.com
- PORT 5000 <- TCP ACK(80)/SYN(5000) <- www.baidu.com
- PORT 5000 -> TCP ACK(5000) -> www.baidu.com
SYN:同步位,用于实现请求
ACK:确认位,用于实现确认
Note:三次握手时数据传输之前的预缓冲过程,是一个“有礼貌地打招呼”过程
四次挥手
- port 5000 -> TCP fin(80) -> server
- port 5000 <- TCP ACK(80) <- server
- port 5000 <- TCP fin(5000) <- server
- port 5000 -> TCP Ack(5000) -> server
拓展:
为什么是三次握手,四次挥手:https://blog.csdn.net/Boring_Wednesday/article/details/83189743
可靠传输(***/确认号,重传机制)
client -> seq =1,len=5 -> server
client <- ack = 6 <- server
client -> seq =6,len=9 -> server
client <- ack = 15 <- server (如果ack < 15,则seq = 6,len = 9需要重传)
ackn+1 = seqn + lenn :可靠机制(不丢包)
ackn+1 < seqn + lenn :可靠机制(丢包,重传)
流量控制(滑动窗口)
window size值是动态的,防止数据量太少,效率低,防止数据量太大,发生溢出。
多路复用
ip1:port1 与 ip2:port4
ip1:port2 与 ip2:port5
ip1:port3 与 ip2:port6
TELNET
定义
远程登录协议
功能
Telnet route-server.ip.att.net 登录远程服务器(美国)
(Telnet 12.0.1.28)
退出:exit
三次握手如下图: