TCP协议的三次握手过程
- TCP作为一种可靠传输控制协议
- 核心思想:保证数据可靠传输,提高传输效率
- 三次握手建立连接
TCP三次握手过程
每一次握手:全双工的方式
- 第一次握手,客户端发送数据包给服务端:证明了客户端有发送的能力
- 第二次握手,服务端接收到之后,再发送数据包给客户端:证明了服务端有发送和接收的能力
- 第三次握手,客户端接收到服务端的数据包,再发送数据包给服务端:证明了客户端有接收的能力
- 所以每一次的握手都是去完成对应的功能,只能确认客户端和服务端都有发送和接受的能力,才能保证整个TCP链接的可靠性
口述:
- 客户端发送SYN(seq=X)报文给服务器端,进入SYN_SEND状态
- 服务器端接受到SYN报文,回应一个SYN(seq =Y) 和ACK(ack = x + 1)报文,进入SYN_RECV状态
- 客户端接受到SYN报文,回应一个ACK(ack = Y+ 1)报文,进入Established状态。
- 在三次握手完成后,TCP客户端和服务端成功建立连接,可以开始传输数据了。
如果只有两次握手?
- 第一次客户端发送请求,第一次握手请求由于网络阻塞等原因卡在半路
- 客户端发送第二次请求,这一次服务端收到了,经过两次握手后建立连接,双方都进入ESTABLISHED状态开始传输数据
- 在传输完成后,释放第二次请求所建立的双方TCP连接,客户端和服务端都进入CLOSED状态
但如果此时网络又顺畅了,第一次请求又来到了服务端
- 这个时候被阻塞的第一次请求重新到达服务端
- 服务端接受到后,开辟空间准备接收连接,并且 发送数据包给客户端
- 但是这个时候客户端处于CLOSED状态,它是不会接收服务端发过来的数据包的
- 服务端发送完之后,由于没有第三次握手,它不知道客户端已经挂了
- 服务端将会一直等待下去,浪费服务端连接资源
为什么不使用四次握手?
因为三次握手就已经能够保证客户端和服务端已经同时具有发送和接收的能力,四次显得多此一举。
TCP协议的三次握手过程相关推荐
- TCP协议:三次握手过程详解
本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图1所示,给出了TCP通信过程的示意图. 上图主要包括三部分:建立连接.传输数 ...
- TCP协议及三次握手的过程
在这里插入代码片@TOC TCP协议以及三次握手 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 TCP协议以及三次握手 1.TCP协议是什么? 2.TCP协议的作用 3. ...
- TCP协议的三次握手与四次挥手
tcp协议的三次握手和四次挥手 三次握手: 第一次握手: 客户端发起一个链接(SYN) 第二次握手: 服务端就会返回一条(ACK)确认信息,同时服务端也会向客户端发起一个链接请求(SYN),此二者可合 ...
- 用wireshark抓包分析TCP协议的三次握手连接、四次握手断开
用wireshark抓包分析TCP协议的三次握手连接.四次握手断开 一.TCP三次握手图解 二.TCP得四次挥手过程 三.用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程 一.TCP三 ...
- TCP协议的三次握手和四次挥手
转自:http://uule.iteye.com/blog/2213562 TCP协议的三次握手和四次挥手 博客分类: http/tcp TCP/IP协议三次握手与四次握手流程解析 Http协议三次握 ...
- TCP协议中三次握手
TCP/IP是互联网相关的各类协议族的总称 TCP/IP协议族分为:应用层,传输层,网络层,数据链路层 应用层:向用户提供应用服务时的通讯的活动 传输层:提供处于网络连接中的两台计算机之间的数据传输 ...
- 计算机网络【UDP与TCP协议(三次握手、四次挥手)】
计算机网络[UDP与TCP协议(三次握手.四次挥手)]
- 网络基础2-3(TCP协议,三次握手,四次挥手,TIME_WAIT状态的作用,TCP如何保证可靠传输,TCP连接中状态转化,滑动窗口,流量控制,快速重传,拥塞窗口,延迟应答,捎带应答,粘包问题)
TCP协议 TCP协议概念 TCP全称为 "传输控制协议(Transmission Control Protocol"). 人如其名, 要对数据的传输进行一个详细的控制 TCP协议 ...
- TCP协议以及三次握手
TCP协议,传输控制协议(英语:TransmissionControl Protocol,缩写为 TCP)是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC793定义. tcp通 ...
最新文章
- 新浪的股票接口 c#
- maya python 创建求_如何使用python在Maya中创建列表
- Failed to execute goal org.apache.maven.plugins:maven-resources-plugin
- 如何为Linux安装Go语言
- Android 应用开发---App 移动应用中九种导航设计总结及其优缺点分
- Struts2反序列化漏洞复现
- 每日学习之 2016.07.27
- 商场超市数据备份方案
- notion知识库网站
- 爬虫_淘宝(selenium)
- 【快讯】Hyper创始人赵鹏、王旭加盟蚂蚁金服
- AI为移动医疗APP加码,智能提醒你:该吃药了!
- Funcode拍飞虫 C语言
- 顺丰同城赴港IPO 有望凭借高增速和生态布局成为第三方即时配送平台第一股
- 山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
- 日常一记(7)--excel合并两列数据并删除重复项
- Spring Aop(入门篇)
- 利用Python取出excel数据并生成统计图
- 第六章 颠覆与重塑思维,大数据与思维革命
- ESP8266及AT指令学习笔记