《UNP》学习之TCP状态转换

- CLOSED:TCP起始状态
- LISTEN:绑定端口后进入listen状态,一般是服务端
- SYN_SENT:发送SYN连接请求,主动打开连接的一方进入SYN_SENT
- SYN_RCVD:接收到SYN连接请求后进入SYN_RCVD,同时发送SYN,ACK。TCP可从LISTEN和SYN_SENT两个状态进入SYN_RCVD
- ESTABLISHED:三次握手成功后进入ESTABLISHED状态
- CLOSE_WAIT:被动关闭的一方接收到FIN包后,发送ACK响应,进入CLOSE_WAIT状态
- LAST_ACK:顾名思义,在等待最后一个ACK包。CLOSE_WAIT发送FIN包关闭连接后进入该状态
- FIN_WAIT_1:主动关闭的一方先发送FIN包,从ESTABLISHED状态进入FIN_WAIT_1
- CLOSING:FIN_WAIT_1下是在等待对方的ACK响应和对方的FIN包,FIN包先到的话,两端是同时关闭,FIN_WAIT_1发送ACK响应后进入CLOSING状态,等待一个ACK,然后进入TIME_WAIT状态
- FIN_WAIT_2:FIN_WAIT_1下是在等待对方的ACK响应和对方的FIN包,如果ACK先到,进入FIN_WAIT_2状态。这时候的连接处于半连接状态,有一方已经断开连接,但另一方还有数据要传。继续等待FIN包,FIN包到了后,发送ACK,进入TIME_WAIT状态
- TIME_WAIT:FIN_WAIT_1下是在等待对方的ACK响应和对方的FIN包,FIN包和ACK包都到了,发送ACK响应后,进入TIME_WAIT状态,等待2MSL然后关闭
TIME_WAIT状态解释
- 主动关闭连接的一方会进入TIME_WAIT状态,等待2MSL然后彻底关闭
- MSL是任何IP数据报能够在因特网中存活的最长时间
- 为什么要等待2MSL?
- 可靠地实现TCP全双工连接的终止
- 允许老的重复分节在网络中消逝
《UNP》学习之TCP状态转换的更多相关文章
- TCP状态转换(图解+文字解说)
<深入分析 javaweb 技术内幕>P38 读书扩展 作者:淮左白衣 写于2018年4月12日20:58:36 目录 TCP状态转换图解 图解三次握手 文字讲解三次握手: 图解四次挥手 ...
- TCP状态转换
最近笔试遇到一个题目:如果tcp建立连接时第三次握手失败,tcp会做何操作?该问题的本质是判断我们对tcp的状态转换是否能有比较深刻的理解.只要理解了下面的状态转换图,很容易回答上述问题. 在此,将& ...
- zabbix4.2学习笔记--TCP状态监控
Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB:或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击(例如SYN攻击),或是是time_wait值比 ...
- TCP 连接建立和断开,以及状态转换
1. TCP报文结构 TCP是一种可靠.面向连接.全双工的传输层协议,其报文格式如下所示: 源端口.目的端口:16位长.标识出远端和本地的端口号. 顺序号:32位长.表明了发送的数据 ...
- TCP的状态转换
TCP的状态转换图 手写的状态转换图 一.服务端状态变迁: 服务端创建套接字之后调用listen函数将套接字有一个未连接的主动套接字转换为被动套接字,指示内核应接受指向该套接字的连接请求,套接字状态 ...
- 传输控制协议(TCP) -- TCP状态转换图
TCP状态转换图 在<UNIX网络编程 卷1>一书中,作者给出了TCP状态转换图(如下).本文也将围绕此图进行阐释. 注:上图红框表示比较特殊的地方. TCP状态转换两条主线 图2-4中的 ...
- TCP状态转换图解析
本文参考Unix网络编程卷1,对TCP状态转换进行总结,方便掌握TCP链接中各个状态及故障分析. 1.Linux下TCP相关工具 基于Linux系统查看网络状态,首先了解几个基本查看指令. Linux ...
- Zabbix学习之路(六)TCP状态监控
TCP状态监控 Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB:或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了***,或是是time_wait值比 ...
- TCP连接建立与终止,及状态转换
TCP连接建立 三路握手 三路握手发生在客户端发起connect请求到服务端accept返回中,在三路握手发生前,服务端必须准备好接受外来连接,这通常通过服务端调用 (socket.bind.list ...
随机推荐
- Linux磁盘分区(二):删除
***********************************************声明************************************************ 原创 ...
- 如何简单愉快的上手PipelineDB
pipelineDB source:https://github.com/pipelinedb/pipelinedb 安装PipelineDB ./configure CFLAGS="-g ...
- 【NOIP2014提高组】联合权值
https://www.luogu.org/problem/show?pid=1351 既然是一棵树,就先转化成有根树.有根树上距离为2的点对,路径可能长下面这样: 枚举路径上的中间点X. 第一种情况 ...
- Codeforces 850C Arpa and a game with Mojtaba
题意:给定一个正整数序列,两人轮流对这个数列进行如下修改:选取一个素数p和一个整数k将序列中能整除p^k的数除以p^k,问谁有必胜策略. 借此复习一下sg函数吧,sg(x) = mex ( sg(y) ...
- MongoDB学习笔记<一>
今天学习了shell的主要的操作,例如以下: 1.创建一个数据库foobar use foobar 2.给指定的数据库加入集合,并加入记录 db.person.insert({"name&q ...
- bmp文件格式中rgb555与rgb888之间的转换,24位与16位位图的转换
今日,有同事问我.rgb555模式下的位图文件的格式问题,于是花了一下午的时间通过推測与測试,分析出了例如以下bmp文件在rgb555模式下的文件存储规律: 1:bmp文件的文件信息头中的biBitC ...
- 数据结构--二叉查找树的java实现
上代码: package com.itany.erchachazhaoshu; public class BinarySearchTree<T extends Comparable<? s ...
- js中常见的一些兼容性问题
1)滚动条: document.documentElement.scrollTop||document.body.scrollTop 2) 网页可视区域兼容 window.innerHeight || ...
- java泛型学习(一)
泛型也叫做参数化类型,顾名思义的去理解,就是把类型作为一个参数.类比方法的传参,我们举个例子. class A{ public void getX(int x){ System.out.println ...
- 自学Zabbix3.8.4-可视化Visualisation-Slide shows
Zabbix3.8.4-可视化Visualisation-Slide shows幻灯片 定义好screen之后,我们想了解服务器状况之时,一般会一个个screen点过去,zabbix提供了幻灯片展示方 ...