TCP 数据段
重点六位
控制位:客户端,服务器目前处于什么状态
- URG(紧急位):是否含有紧急数据
- ACK(确认位):已经建立连接
- PSH(急切位):立即读走数据
- RST(重置位):连接出现问题,需要重新连接
- SKN(同步位):请求建立连接
- FIN(断开位):已经断开连接
注:pid:系统中没打开开一个应用程序,会分配一个pid号,其次会分配端口号
作用:方便管理
端口号:区分应用程序
seq:序列号,表示本报文段所发送数据的第一个字节的编
ack:确认号,表示接收方期望收到发送方下一个报文段的第一个字节数据的编号
TCP特点
-
工作在传输层
-
是面向连接协议
-
全双工协议,同时收发
-
半关闭
-
错误检查
-
将数据打包成段,排序
-
确认机制
-
数据恢复,重传
-
流量控制,滑动窗口
TCP三次握手(重点)
1.当pc1想和pc2建立通信时,pc1首先会发送一个SYN报文,请求建立连接,报文包含(seq=x,指报文中数据第一个字节的序号,SYN=1,请求建立连接)
2.当pc2收到后,会回复一个SYN+ACK报文,seq=y,ack=x+1,表示收到信息,希望下一次接受到的序号为x+1,SYN=1,ACK=1,表示同意建立连接请求)
3.发送ACK报文,seq=x+1,ack=y+1,ACK=1,封装ACK=1,成功建立连接
四次挥手(了解)
有限状态机(11种)
-
CLOSED 没有任何连接状态
-
LISTEN 侦听状态,等待来自远方TCP端口的连接请求
-
SYN-SENT 在发送连接请求后,等待对方确认
-
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
-
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
-
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
-
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
-
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
-
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
-
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
-
CLOSING 双方同时尝试关闭传输连接,等待对方确认
UDP特点
-
工作在传输层
-
提供不可靠的网络访问
-
非面向连接协议
-
有限的错误检查
-
传输性能高
-
无数据恢复特性