TCP协议
一.定义
Transmission Control Protocol,传输控制协议,是TCP/IP协议栈中算法最多,功能最繁杂的协议
基于TCP的应用层协议:
- HTTP:80
- HTTPS:443
- FTP:20/21
- SSH:22
- TELNET:23
- SMTP/POP:25/110
二.功能
- 面向连接(三次握手、四次挥手)
- 可靠传输(经典重传、超时重传、快速重传/选择性重传)
- 流量控制(滑动窗口、拥塞管理)
- 多路复用(套接字)
三.原理
(一)面向连接(三次握手、四次挥手;SYN/ACK/FIN位)
Wireshark过滤语法:(抓取特定数据包)
tcp.flags.syn == 1
tcp.flags.fin == 1
tcp.flags.ack == 1
(二)可靠传输(序列号SEQ+确认号ACK+重传算法)
正常:
ACKn+1 = Seqn + Lenn
重传:
ACKn+1 < Seqn + Lenn
可靠传输案例:
小结:
①正常不丢包情况下,ACK ~n +1~= SEQn + Len n,即下一次的确认号等于上一次的序列号加数据包长度值;若丢包情况下,则ACK ~n +1~ < SEQ n + Len n
②下一次的序列号等于上一次的确认号Seq ~n+ 1~ = ACK n
(三)流量控制(窗口大小)
(四)多路复用(套接字socket、会话session、五元组)
注明:
TCP通过端口号(port)或套接字(ip+port)实现多路复用
源目IP+源目Port+协议号 = 五元组