TCP三次握手四次挥手内容及步骤
TCP特性
1、工作在传输层
2、面向连接的协议
3、全双工协议
4、半关闭
5、错误检查
6、将数据打包成段,排序
7、确认机制
8、数据恢复、重传
9、流量控制、滑动窗口
10、拥塞控制,慢启动和拥塞避免算法
常见端口号
http80 https443 ftp20/21 dns53 tftp69
smtp25 pop110 imap143 telnet23 ssh 22
mysql3306 oracle1521
三次握手
————————————————
当一台主机(客户端)想要通过TCP协议向另一台主机(服务器)发送数据时,需要建立三次握手
第一次握手,客户端主动打开TCP连接通道,发送TCP请求报文,在该报文中SYN(同步位,代表连接请求或连接请求的接受报文)置为1,seq(序列号)为随机数x。
第一次握手过程中,客户端由CLOSED状态,即没有任何连接的状态,变为SYN-SENT状态,即发送连接请求后等待匹配的连接请求状态。代表请求连接,不会传输数据。
第二次握手,当服务器端收到了TCP连接请求(即SYN置为1的报文。注:此处应该是不携带ACK为1的报文),服务器被动打开连接通道,根据服务器自身策略向客户端发送TCP回复报文,在该报文中SYN置为1,ACK(确认位,置为1代表确认,置为0代表...代表不确认呗)置为1,ack(确认序列号)为TCP请求报文中的seq+1即x+1,seq(序列号)为另一个随机数y。
在第二次握手过程中,服务器在收到TCP请求报文时,被动的由CLOSED状态与LISTEN状态变为SYN-RECEIVED状态,即收到和发送一个连接请求后等待对方对连接请求确认的状态,同时准备好缓存空间以及一些涉及到的变量。代表允许连接,不会传输数据。
第三次握手,当客户端收到服务器的TCP连接请求的回复报文后,会向服务器端发送一个报文携带ACK置为1,ack为TCP连接请求的回复报文中seq+1即y+1,seq为最开始的x+1,也就是TCP连接请求的回复报文中ack的值,SYN置为0。
在第三次握手过程中,当客户端收到了TCP连接请求的回复报文(允许连接)时,客户端由SYN-SENT状态变为ESTAB-LISHEN状态,代表一个打开的连接,同时客户端为TCP连接准备好缓存空间以及一些涉及到的变量。该报文代表向服务器端确认的确认报文,可以携带数据。
————————————————
LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(客户端)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(服务器)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
四次挥手

————————————————
参与一条TCP连接的两个“进程”中的任何一个都能终止该连接,连接结束后,主机中的“资源”(缓存和变量)都将被释放。
第一次挥手,客户端向服务器发送关闭连接请求报文,即连接释放报文,关闭TCP连接,该报文中FIN(结束位)置为1,seq置为u(报文段第一个字节的序号,可以标识这个报文段)。
在第一次挥手过程中,客户端由ESTABLISHED状态变为FIN-WAIT-1,等待远程TCP连接中断请求,或先前的连接中断请求的确认。此时客户端已经释放了发送连接。
第二次挥手,服务端收到客户端发送的关闭请求,回复一个确认报文段,该确认报文中ACK置为1,ack为u+1,seq为v(最后一个TCP数据报文中的最后一个字节+1)。
在第二次挥手过程中,服务器由ESTABLISHED状态变为CLOSE-WAIT状态,等待足够的时间以确保远程TCP接收到连接中断请求的确认。此时服务器端释放了接受连接。由于客户端关闭了发送连接,服务器端关闭了接受连接,所有此时整个TCP连接处于一种半关闭状态。
第三次挥手,服务器发送确认关闭报文后需要向客户端发送一个释放连接报文,关闭TCP发送连接,由于是释放连接报文,所以FIN置为1,ACK置为1,ack为u+1(由于上一挥手报文也是由服务器发送,所有客户端等待的报文需要有ACK位,同时确认号依旧为上一个报文的确认号),

TCP三次握手四次挥手内容及步骤的更多相关文章
- [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解
一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:T ...
- tcp三次握手四次挥手那些事
建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.三次握手,四次挥手流程图如下: 一.首先看下如何通过三次挥手----------建立连接 首先客户端发送连接请求报文,服务端接受连接后回复AC ...
- 网络 TCP三次握手,四次挥手详解
三次握手,四次挥手可以说是炙手可热的面试题了,来看看它究竟长什么样子吧! 我们先把流程图贴上来 : 为什么这么复杂? 因为TCP是可靠性传输. 确认可靠传输的前提: TCP连接管理机制 用TCP首部 ...
- TCP三次握手四次挥手,通俗易懂版
三次握手四次挥手 三次握手 其实很好理解,三次握手就是保证双手都有发送和接受的能力.那么最少三次才能验证完成 即----> 客户端发送---服务端收到----服务端发送-- 1.客户端发送 -- ...
- TCP三次握手四次挥手详解
转载 http://www.cnblogs.com/zmlctt/p/3690998.html 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需 ...
- TCP三次握手四次挥手详解2
相对应socket开发者,TCP创建过程和连接拆除过程是由TCP/IP协议栈自动创建的,因此开发者并不需要控制这个过程,但是对于理解TCP底层运作机制,相当有帮助 TCP三次握手 所谓三次握手,是指建 ...
- TCP三次握手四次挥手过程梳理
1. 数据传输的大致示意图 1.1 TCP数据报文首部内部 1.2 TCP连接的几种状态说明 即命令 netstat 结果中的所有状态: 2. TCP连接建立的全过程 2.1 TCP三次握手建立TCP ...
- TCP三次握手/四次挥手详解
一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程 ...
- TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释
一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...
- wireshark抓包直观图解 TCP三次握手/四次挥手详解
转http://www.seanyxie.com/category/linux/ 作者:seanyxie | 一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负 ...
随机推荐
- 滴水2.c++构造 与 继承
1.构造函数特点 2.析构函数的特点: 析构函数前面必须有~ 3.继承 一个子类可以有多个父类 作业1. #include<stdio.h> struct DateInfo { int y ...
- idea+git+gitee的使用
idea+git+gitee的使用 下载git并安装 进入官网,选择合适的版本进行下载: 点击进入官网 下载完毕后,安装git 安装idea中的gitee插件 注意:安装好之后重启idea 进入ide ...
- LOJ 数列分块入门 6
\(\text{Solution}\) 涉及到插入,分块需要动态维护块内的元素及相对位置 于是妙用 \(\text{vector}\) 学到了 \(insert\) 操作,在某个迭代器前插入元素 这样 ...
- Connect-The-Dots
Connect-The-Dots 目录 Connect-The-Dots 1 信息收集 1.1 端口扫描 1.2 后台目录扫描 1.2.1 目录分析 2 目标服务安全检测 2.1 ftp检测 2.2 ...
- EULAR2021_推文_大多数免疫抑制剂对辉瑞新冠疫苗效果影响小
尤其令人开心的是TNF抑制剂和抗IL-17!但是,糖皮质激素.利妥昔单抗.吗替麦考酚酯(MMF).阿巴西普(抑制T淋巴细胞激活)会明显降低疫苗接种效果.链接:http://note.youdao.co ...
- 第24周SDAI缓解能否预测远期RA骨破坏受抑制
第24周SDAI缓解能否预测远期RA骨破坏受抑制 Hirano F, et al. EULAR 2015. Present ID:THU0085. 原文 译文 THU0085 SDAI REMISSI ...
- Java流程控制:用户交互Scanner、选择结构
Java流程控制:用户交互Scanner.选择结构 用户交互Scanner Scanner类用于获取用户的输入 基本语法: Scanner s = new Scanner(System.in);s.c ...
- OpenSCAD:一款用于创建实体3D CAD对象的软件
推荐:使用 NSDT场景设计器 快速搭建 3D场景. 原文链接:https://www.mvrlink.com/openscad/ OpenSCAD是一个用于创建实体3D CAD对象的软件.它是免费软 ...
- ElasticSearch 实现分词全文检索 - 概述
需求 做一个类似百度的全文搜索功能 所用的技术如下: ElasticSearch Kibana 管理界面 IK Analysis 分词器 SpringBoot ElasticSearch 简介 ES ...
- E-MU1212m(E-MU1616m)在Win10(Win11)中的驱动安装
创新(Creative)公司早期生产的专业PCI声卡E-MU1212m及E-MU1616m当前二手市场上的性价比非常高,但由于生产年代久远,其驱动程序最高只支持到Windows vista版本,经过实 ...
