TCP/IP协议是传输层的一个面向连接的安全可靠的传输协议。

刚开始客户端处于 closed 的状态,服务端处于 listen 状态;

第一次握手是由客户端发起,客户端会向服务端发送一个SYN报文,报文里面SYN标志位是置1的,并指明客户端的初始化序列号。此时客户端处于SYN_Send状态;

当服务端收到这个SYN 报文的时候就知道客户端要和我发起一个新的连接,于是服务端就向客户端发送一个自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s),同时会把客户端的 ISN + 1 作为 ack 的值,ACK位置1,表示自己已经收到了客户端的 SYN报文,此时服务器处于SYN_RCVD的状态;以上两次握手之后,对于客户端而言,其实是已经知道了所有信息,就是我既能给服务端发送消息,我还能收到服务端的消息;对于服务端而言,两次握手是不够的,因为到目前为止,服务端只知道一件事情,客户端给我发送的消息我收的到,但是我发给客户端的消息,客户端能不能收到我还不知道。

所以还要进行第三次握手。第三次握手就是当客户端收到服务端发过来的确认消息的SYN报文之后,还要继续给服务端进行一个回应,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ack 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于established状态。

通过以上三次连接,不管是服务端还是客户端都彼此知道了,我既能给对方发送消息也能收到对方的消息,那么这个连接就能被安全的建立了。

三次握手的作用:
1、确认双方的接受能力、发送能力是否正常。
2、指定自己的初始化序列号,为后面的可靠传送做准备。
3.为了保证能建立一个安全可靠的连接。

TCP/IP协议 三次握手相关推荐

  1. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  2. 白话解说TCP/IP协议三次握手和四次挥手

    白话解说TCP/IP协议三次握手和四次挥手 1.背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 1.1.问题 有时候聊天的过程中,我的 ...

  3. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义:       这里 ...

  4. python网络通信效率_Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般 ...

  5. 通俗理解TCP/IP协议三次握手与四次分手流程

    三次握手流程 客户端发个请求"开门呐,我要进来"给服务器 服务器发个"进来吧,我去给你开门"给客户端 客户端有很客气的发个"谢谢,我要进来了" ...

  6. ​TCP/IP协议三次握手和四次挥手

    TCP/IP简介: TCP/IP 是不同的通信协议的大集合. 是指能够在多个不同网络间实现信息传输的协议族.TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP.SMTP.TCP.U ...

  7. TCP/IP协议 - 三次握手四次挥手(入门易懂版)

    握手通俗理解为两个人见面Say Hai,客户端和服务端建立连接 挥手就可以理解为两个人结束会面,要Say Goodbai,客户端和服务端断开连接 要了解什么是三握四挥,必须要了解一个重要的知识点:什么 ...

  8. TCP/IP协议三次握手流程

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

  9. 【干货】TCP/IP协议三次握手四次挥手

    TCP是一种面向连接的.可靠的.基于字节流的传输层通信协议,在发送数据前,通信双方必须在彼此间建立一条连接.所谓的"连接",其实是客户端和服务端保存的一份关于对方的信息,如ip地址 ...

最新文章

  1. 实操教程|Pytorch常用损失函数拆解
  2. es-04-mapping和setting的建立
  3. php sockent通信
  4. 开放下载!《阿里云存储白皮书》全面解读阿里云存储二十年的技术演进
  5. 【POJ - 1741】Tree(树分治,容斥,点分治,模板题)
  6. zabbix-02-CentOS7.4安装zabbix4.0
  7. 小程序的 rpx布局问题
  8. WPF的ListBox的数据绑定,但需要添加控件在里面的时候
  9. cocos2d-x中的尺寸之一
  10. 你真的会用搜索引擎吗
  11. IDC发布2020上半年SD-WAN报告:阿里云领跑国内服务市场
  12. 安装android开发环境
  13. python实现语音信号的分帧、加窗、预处理
  14. mininet-ovs转发行为与流表不对应
  15. 【数据结构】悬空指针和野指针
  16. English Learning - Day3 作业打卡 2022.12.9 周五
  17. 结构光三维重建-3D Scanning Software实现三维重建
  18. 上海“网红流浪汉”你站住!To B人有话对你说~~~
  19. 机器人genghis_家用机器人的未来
  20. 一款基于chatGPT的插件【Merlin】,聊天式感受强大AI能力

热门文章

  1. 2023新版UI电子木鱼静心小程序源码+功能强大
  2. MATLAB:nc文件转tif
  3. xssfcellstyle设置居中_POI HSSFCellStyle 设置 Excel 单元格样式
  4. pyecharts 大小_pyecharts 常用API 图形初始化
  5. Word2Vec原理与公式详细推导
  6. MepReduce-开启大数据计算之门
  7. 关于android MqttClient消息推送客户端锁屏状态,无法发送心跳包解决方案
  8. GitHub注册安装与使用
  9. php 把时间转为时间戳_php怎么把时间格式转换为时间戳?
  10. java使用emqtt实现即时聊天_emqttd java代码测试