TCP协议的三次握手、四次挥手
TCP三次握手
TCP的连接的建立需要发送三个包,一次称为三次握手(Three-way Handshake)。
三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时,将触发三次握手。
TCP协议提供可靠的连接服务,采用三次握手建立一个连接:
(1) 第一次握手:客户端发送SYN包(SYN=X)到服务器,并进入SYN_SEND状态,等待服务器确认,此时服务器为listen状态。
(2) 第二次握手:服务器收到SYN包,确认SYN包(ACK=X+1),同时发送一个SYN包(SYN=Y),即SYN+ACK包,服务器进入SYN_RCVD状态。
(3) 第三次握手:客户端收到SYN+ACK包,发送确认包ACK(ACK=Y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据.
TCP 四次挥手
TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
(1)第一次挥手:TCP连接的一方发送FIN包(FIN=X+2),并确认上一个接收的数据包(ACK=y+1),请求发起方由ESTABLISHED状态变为FIN_WAIT_1状态
(2)第二次挥手:请求接收方收到FIN包,由ESTABLISHED状态变为CLOSE_WAIT状态,发送确认包ACK(ACK=X+3),发起方收到确认包ACK(ACK=x+3),由FIN_WAIT_1状态变为FIN_WAIT_2状态。
(3)第三次挥手:请求接收方发送FIN包(FIN=y+1),表示数据传输完成,可以断开连接,发起方收到FIN包(FIN=y+1)由CLOSE_WAIT状态变为LAST_ACK状态
(4)第四次挥手:请求发起方收到FIN包,由FIN_WAIT_2状态变为TIME_WAIT状态,发送确认包ACK(ACK=y+2),等待2MSL(Maximum Segment Lifetime,最大报文时间)后断开连接,请求接收方收到确认包ACK后,断开连接。
TCP是3次握手与4次挥手,为什么不是4次握手呢,因为握手请求同步过程中不需要数据传输,因此可将两次合并为一次。
TCP协议的三次握手、四次挥手的更多相关文章
- python摸爬滚打之----tcp协议的三次握手四次挥手
TCP协议的三次握手, 四次挥手 三次握手过程 1, 服务器时刻准备接受客户端进程的连接请求, 此时服务器就进入了LISTEN(监听)状态; 2, 客户端进程然后向服务器发出连接请求报文, 之后客户端 ...
- tcp协议:三次握手四次挥手详解-转
https://www.cnblogs.com/welan/p/9925119.html
- OSI七层协议&TCP协议(三次握手四次挥手)
今日内容 python 基础回顾 软件开发架构 网络理论前戏 OSI 七层协议(五层) TCP协议 三次握手与四次挥手 UDP协议 内容详细 一.python 基础回顾 1.基本数据类型 整型 int ...
- web服务-1、http协议的三次握手四次挥手
知识点:http协议:它是基于tcp协议的,浏览器访问服务器,服务器把资源回给浏览器,这个过程都是遵循http协议的,否则无法完成,http早些年是1.0版本,现在基本上都是1.1版本了,俩个版本的区 ...
- TCP/IP报文 三次握手 四次挥手
1.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序 ...
- 关于TCP传输的三次握手四次挥手策略
简单小总结: 一般为了能够准确无误地把数据送达目标处,TCP协议采用了三次握手策略.用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达. 注:握手过程中使用 ...
- TCP传输的三次握手四次挥手策略
为了准确无误地数据送达目标处,TCP协议采用了三次握手策略.用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达.握手中使用了TCP的标志:SYN和ACK 发 ...
- 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程
一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...
- TCP/IP,三次握手四次挥手,TCP/UDP , HTTP/HTTPS
internet:通用名词,由多个计算机网络组成的网络,网络间的通信协议是任意的 Internet:专用名词,当前全球最大的开放计算机网络,采用TCP/IP协议族作为通信的规则.www万维网是广泛应用 ...
- tcp/ip原理/三次握手/四次挥手
@ tcp/ip原理 1.1 tcp/ip三次握手 1.1.1 建立过程说明 a) 由主机A发送建立TCP连接的请求报文, 其中报文中包含seq序列号, 是由发送端随机生成的, 并且还将报文中SY ...
随机推荐
- noip模拟赛 财富
题目描述LYK有n个小伙伴.每个小伙伴有一个身高hi.这个游戏是这样的,LYK生活的环境是以身高为美的环境,因此在这里的每个人都羡慕比自己身高高的人,而每个人都有一个属性ai表示它对身高的羡慕值.这n ...
- nyoj_71_独木舟上的旅行_201312122051
独木舟上的旅行 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能 ...
- Hive权限之审计
因为在生产环境中大量使用hive.而hive的权限又较弱,假设可以记录全部hive操作,在增强安全性的同一时候,还可以统计hive表的使用频率:同一时候假设可以记录hql的開始和结束时间,则可以找出系 ...
- String字符串方法具体解释
Java开发中,基本都会用户String,有些时候忘记了它还有某一个方法,或者曾经没有使用到.而这些方法可能会节约非常多时间.自己为了学习这些方法,决定对部分測试一下. 定义:String=" ...
- C++组合通信
#include <iostream> #include<vector> #include<string> using namespace std; class A ...
- 前端project师的价值体如今哪里?
这是一个非常老的话题"前端project师的价值体现在哪里?".有人说:"前端project师之于站点的价值宛如化妆师之于明星的价值."一位好的Web前端开发p ...
- C# winform KeyPress 事件中对应的数字
C# winform KeyPress 事件中对应的数字所有e.KeyChar值的意思 常用ASCII码表 你自己看看应该就明白了 键盘 ASCII码 键盘 ASCII码 ESC 27 7 55 S ...
- class--类①
原来看其他人的代码,发现有好多class之类的语句,当时没太注意.可后来,我觉得应该有学习新知识的必要了. 类定义是以关键字 class 开头,后跟类的名称.类的主体是包含在一对花括号中.类定义后必须 ...
- Java-JRE:JRE百科
ylbtech-Java-JRE:JRE百科 JRE是Java Runtime Environment缩写,指Java运行环境,是Sun的产品.运行JAVA程序所必须的环境的集合,包含JVM标准实现及 ...
- .sh文件 编写格式
http://blog.sina.com.cn/s/blog_54f82cc201010hfz.html 介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号# ...