TCP/IP的三次握手和四次挥手

前言

tcp/ip 握手挥手是网络连接的基本知识, 值的花时间弄懂到底干了什么.

TCP/IP 协议分层

OSI参考模型| TCP/IP参考模型
  1. 应用层 |
  2. 表示层 | 4. 应用层(ftp、http、dns、telnet、smtp…)
  3. 会话层 |
  4. 运输层 | 3. 运输层(tcp,udp)
  5. 网络层 | 2. 网络层(ip、icmp、arp、rarp、bootp)
  6. 数据链路层 | 1. 网络接口层
  7. 物理层 |

前置知识

TCP 在发送过程中, 会借助一个TCP标志选项来确定当前TCP段的目的, 这就叫着TCP标志位(TCP Flag), 告诉另一端如何正确使用该TCP段.
TCP 一共有6 个标志选项

  1. Urgent pointer : 紧急指针, 接收端接收到紧急指针后立即处理, 不经过等待队列.
  2. Acknowledgement : 确认, 确认数据包的成功接收.
  3. Push : 推送. 给与数据优先级, 确保在接收端处理.
  4. RST: 复位. 服务端无法答复客户端的请求时, 会拒绝请求并发送复位.
  5. Synchronisation : 同步, 连接三次握手时, 由于建立虚拟连接而使用的标志.
  6. Fin : 完成, 拆除上一次(SYN) 简历的虚拟连接,一般是四次挥手时使用的标志.

三次握手

客户端 : 发起第一次请求, 发送 Seq num = N , 标志位 : SYN , 状态变更为: SYN_SENT
服务端 : 发起第二次请求, 发送 Seq num = M, Ack num = N + 1, 标志位 : SYN , ACK , 状态变更为: SYN_RVCD
客户端 : 发起第三次请求, 发送 Seq num = N + 1, Ack num = M + 1, 标志位 : ACK , 状态变更为: ESTABLISHED
握手完成, 开始正常通信
服务端 : 建立连接 状态变更为 ESTABLISHED
在这里插入图片描述
使用大白话讲解就是:
A: 你能听的到我说话吗?
B: 我能听到你说话, 那你能听到我说话吗?
A: 我能听到你说话, 那我们开始交流吧

四次挥手

客户端 : 发起第一次请求, 发送 Seq num = N, 标志位 : FIN , 状态变更为 : FIN-WAIT-1
服务端 : 发起第二次请求, 发送 Seq num = L, Ack num = N + 1 , 标志位 : ACK , 状态变更为 : CLOSE-WAIT
服务端 : 发起第三次请求, 发送 Seq num = M, Ack num = N + 1 , 标志位 : FIN , ACK , 状态变更为 : LAST-ACK
客户端 : 发起第四次请求, 发送 Seq num = N + 1, Ack num = M + 1 , 标志位 : ACK , 状态变更为 : TIME-WAIT
挥手完成, 所有连接关闭, 状态变更为 CLOSED
在这里插入图片描述
使用大白话讲解就是:
A: 注意我要准备挂电话了
B: 我知道你要挂电话了, 但是我还要说些没有说完的内容.
B: 我也要准备挂电话了.
A: 我已经知道你要挂电话了, 我挂了, ByeBye.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值