TCP三次握手与四次挥手

TCP三次握手与四次挥手

前言

今天在学习新技术的时候,觉的很有兴趣,就坐下分享下

在学习的时候,大脑是在转,为什么TCP为什么传输是可靠的,而UDP传输为什么是不可靠的。

正如标题所言,TCP每次握手、挥手都是必不可缺,举个比较形象的例子

你要跟一个女孩谈对象,首先肯定你要有一个心仪的女孩,向那个女孩说我喜欢你,当然啊,如果那个女孩也喜欢你,告诉你我喜欢你,最后你牵起她的手,你俩确定男女关系,这是三次握手

四次挥手的话就是,你俩相处一段时间后,你觉得你不喜欢那个女孩,向那个女孩提出分手,然后女孩不同意分手,然后你坚定的要分手,然后那个女孩无可奈何只能被迫分手了,这是四次挥手。当然据这个例子,不是为了鼓励渣男的诞生,就是为了举个例子,有个爱自己的女孩她不好吗,当然啊我绝对是纯情Boy好了走入正题。

三次握手过程

在这里插入图片描述

第一次握手:client将标志位SYN置为1,随机产生一个值seq=1,并将数据包发送给Server,Client进入SYN_SENT状态,等待Server确认

第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack 序号J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

第三次握手:Client收到确认后,检查ack序号是否为J+1,标志位ACK是否为1,如果正确则将标志位ACK置为1,ack序号=K+1,并将该数据包发送给Server,Server检查ack序号是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

四次挥手过程

在这里插入图片描述

第一次挥手:Client发送一个标志位为FIN包,Seq序号=m,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

第二次挥手:Server收到标志位FIN包后,发送一个标志位ACK给Client,Ack确认序号为m+1,Server进入CLOSE_WAIT状态。

第三次挥手:Server发送一个标志位为FIN包,Seq序号=n,Ack确认号=m+1,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK标志给Server,Ack确认序号=n+1,Server进入CLOSED状态,完成四次挥手。

总结

经过举得例子和逻辑图,经过三次握手和四次挥手,证明了传输数据是可靠的、是面向连接的传输协议,

缺点就是,经过多次握手挥手,它是比较消耗资源的。

是面向连接的传输协议,

缺点就是,经过多次握手挥手,它是比较消耗资源的。

相关推荐

  1. TCP握手挥手

    2024-04-20 17:30:02       20 阅读
  2. tcp握手挥手

    2024-04-20 17:30:02       22 阅读
  3. tcp握手挥手

    2024-04-20 17:30:02       11 阅读
  4. 简述TCP握手挥手

    2024-04-20 17:30:02       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 17:30:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 17:30:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 17:30:02       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 17:30:02       20 阅读

热门阅读

  1. 某互联网公司c++笔试题1

    2024-04-20 17:30:02       13 阅读
  2. 如何正确设计 TCP/IP 流式应用层网络协议

    2024-04-20 17:30:02       14 阅读
  3. coco128数据对象类别中英文对照json格式

    2024-04-20 17:30:02       12 阅读
  4. electron+Vue3构建桌面应用之IPC通讯

    2024-04-20 17:30:02       13 阅读
  5. 构建spotify的electron版本

    2024-04-20 17:30:02       12 阅读
  6. NLP预训练模型

    2024-04-20 17:30:02       12 阅读
  7. 微服务架构中的业务数据可视化设计

    2024-04-20 17:30:02       18 阅读
  8. Linux学习 - 常用和不太常用的实用awk命令

    2024-04-20 17:30:02       14 阅读