目录
TCP协议(传输控制协议)
TCP特性
端口号
访问服务器
TCP3次握手
编辑
有限状态机
UDP协议
TCP协议(传输控制协议)
TCP特性
1.工作在传输层
2.面向连接协议
3.全双工协议
4.半关闭
5.错误检查
6.将数据打包成段,排序
7.确认机制
8.数据恢复,重传
9.流量控制,滑动窗口
端口号
作用:确定进程
分类:
1.规定好的 知名的端口号 (80 443 人为规定)
2.系统随机分配(客户端 去访问服务端 系统会自动 随机分配一个端口号给你)
3.人类自由使用(写)
访问服务器
源端口、目标端口: 计算机上的进程要和其他进程通 信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用,所以通过指定源端口和目标 端口,就可以知道是哪两个进程需要通信。
序列号:表示本报文段所发送数据的第一个字节的编号。
确认号 :( ack )表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。
数据偏移/首部长度 :表示 TCP 报文段的首部长度
控制位 URG (紧急位) :表示本报文段中发送的数据是否包 含紧急数据。后面的紧急指针字段只有当URG=1 时才有效
ACK (确认位): 表示是否前面确认号字段是否有效
PSH (急切位):提示接收端应用程序应该立即从 TCP接收缓冲区中读走数据,为接收后续数据腾出空间
RST (重置位): 如果收到一个 RST=1 的报文,说明与主机的连接出现了严重错误(如主机崩溃),必须 释放连接,然后再重新建立连接。
SYN (同步位): 在建立连接时使用,用来同步序号
FIN (断开位): 表示通知对方本端要关闭连接了,标记数据是否发送完毕
窗口大小:表示现在允许对方发送的数据量
校验和:提供额外的可靠性紧急指针
选项部分: 其最大长度可根据 TCP 首部长度进行推算
TCP3次握手
第一步 : pc1 会发送一个 建立连接的请求报文
1. 报文的序号( seq=x )
2. 同步位(请求建立连接关系: SYN=1 ACK=0 控制 位:当前两台机器处于什么状态? 建立连接 处于 连接 断开连接 )
第二步: 当 pc2 收到消息以后 是不是要回复一个报文
1. 报文的序号 ( seq=y )
2. ack 确认号(我希望你下一次发送 x+1 序号的报文 给你 )
3. 控制位 SYN=1 ACK=1 请求建立连接 pc2 同意建 立连接
第三步:收到 pc2 同意建立连接的报文后
1. 会发送一个 x+1 报文
2. 会告诉对方 我希望你下次 发送 y+1 的序号报文给我
3. 最后 将 ACK=1 封装进去
有限状态机
1. CLOSED 没有任何连接状态
2. LISTEN 侦听状态,等待来自远方 TCP 端口的连接请求
3. SYN-SENT 在发送连接请求后,等待对方确认
4. SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
5. ESTABLISHED 代表传输连接建立,双方进入数据传 送状态
6. FIN-WAIT-1 主动关闭 , 主机已发送关闭连接请求等待对方确认
7. FIN-WAIT-2 主动关闭 , 主机已收到对方关闭传输连接 确认,等待对方发送关闭传输连接请求
8. TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
9. CLOSE-WAIT 被动关闭 , 收到对方发来的关闭连接请 求,并已确认
10. LAST-ACK 被动关闭 , 等待最后一个关闭传输连接确 认,并等待所有分组消失
11. CLOSING 双方同时尝试关闭传输连接,等待对方确认
UDP协议(用户数据报协议)
工作在传输层
提供不可靠的网络访问
非面向连接协议
有限的错误检查
传输性能高
无数据恢复特性