文档章节

TCP state transform

markqk
 markqk
发布于 2016/07/11 11:30
字数 552
阅读 18
收藏 0
点赞 0
评论 0

TCP state:

Client: 

    SYN_SENT (发送连接请求后等待匹配的连接请求) ->  ESTABLISHED(代表一个打开的连接) -> FIN_WAIT_1(发送关闭连接请求后等待对方确认) -> FIN_WAIT_2(收到服务器的ACK后客户端进入fin_wait_2,此时客户端已经完成关闭,等待服务器发来关闭请求) ->

TIME_WAIT(收到服务器的关闭请求FIN,给服务器发个ACK后进入time_wait) -> CLOSED(time_wait过了2MSL时间后进入closed)

Server:

    LISTEN -> SYN_RCVD(收到和发送一个连接请求后等待对方对连接请求确认) -> ESTABLISHED(代表一个打开的连接) -> CLOSE_WAIT(服务器收到客户端的FIN后向客户端发送ACK,之后进入close_wait) -> LAST_ACK(当服务器不需要继续发送数据,就发送FIN,进入last_ack) -> CLOSED(收到客户端的最后ACK后进入close)

 

当客户端开始连接时,服务器还处于LISTENING,

客户端发一个SYN包后,他就处于SYN_SENT状态,服务器就处于SYS收到状态,

然后互相确认进入连接状态ESTABLISHED.

 

当客户端请求关闭连接时,客户端发送一个FIN包后,客户端就进入FIN_WAIT_1状态,等待对方的确认包,

服务器发送一个ACK包给客户,客户端收到ACK包后结束FIN_WAIT_1状态,进入FIN_WAIT_2状态,等待服务器发过来的关闭请求,

服务器发一个FIN包后,进入CLOSE_WAIT状态,

当客户端收到服务器的FIN包,FIN_WAIT_2状态就结束,然后给服务器端的FIN包给以一个确认包,客户端这时进入TIME_WAIT,

当服务器收到确认包后,CLOSE_WAIT状态结束了,

这时候服务器端真正的关闭了连接.但是客户端还在TIME_WAIT状态下,

 

什么时候结束呢.我在这里再讲到一个新名词:2MSL等待状态,其实TIME_WAIT就是2MSL等待状态,

为什么要设置这个状态,原因是有足够的时间让ACK包到达服务器端,如果服务器端没收到ACK包,超时了,然后重新发一个FIN包,直到服务器收到ACK包.

© 著作权归作者所有

共有 人打赏支持
markqk
粉丝 0
博文 42
码字总数 60565
作品 0
朝阳
程序员
Unity学习笔记四

接着三,这次主要是编码操控怪物的动作 设定一下这个类的主要功能: 初始化的时候怪物站立,播放idle动画 发现与主角位置 < 20 时冲向主角 被攻击时冲向主角 与主角距离 < 7时攻击主角 攻击方...

小姚 ⋅ 2014/02/15 ⋅ 0

关于Kinect结合U3D开发体感游戏-菜鸟

@地瓜儿 你好,想跟你请教个问题: 我看了你的第一篇例子,但是GetJointPos函数不存在,然后看到论坛里有替换的函数,试了一下还是不行,求助! using UnityEngine; using System.Collection...

走在渣渣的路上 ⋅ 2015/04/01 ⋅ 5

有關Kinect结合Unity3D引擎开发体感游戏(二)

@地瓜儿 你好,想跟你请教个问题: 依照您定義的我建立kinectMoving.cs Kinect结合Unity3D引擎开发体感游戏(二) 我建立一個terrain的scene, 拉入一個Hierarchy組件(如cubes, 內包含階層cub...

Treesun ⋅ 2014/08/22 ⋅ 1

css3 marquee

HTML结构如下: 原本一层DIV足够,又加了一层是为了增加左右的空白间隙。 然后就可以应用transform动画了: 方案源于stackoverflow:css3-marquee-effect...

一点灵犀 ⋅ 2016/07/18 ⋅ 0

ipsec高可用性试验

最近一段时间在搞ipsec,反向路由注入的那部分书上介绍的很少,而且网上的文章介绍的也不是很深入,于是就查了一下cisco的文档,总结了一下并做了实验。以下是实验过程。 RRI+HSRP+OSPF实验:...

范堡 ⋅ 2009/05/05 ⋅ 0

/etc/sysconfig/iptables 正常运行

# Generated by iptables-save v1.4.7 on Fri Oct 13 15:37:45 2017 *filter :INPUT DROP [210:56954] :FORWARD DROP [0:0] :OUTPUT ACCEPT [113:8354] -A INPUT -p tcp -m state --state NE......

zancun ⋅ 2017/10/13 ⋅ 0

Linux防火墙开放端口

vi /etc/sysconfig/iptables :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-......

子麒 ⋅ 2012/02/15 ⋅ 0

linux iptables 的一个问题

这是我的配置 :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ......

天王盖地虎626 ⋅ 2014/03/12 ⋅ 6

dxCombobox

What it is? dxCombobox is a jQuery plugin that allows you to transform any < select > element into an editable combobox. Pressing any alphanumeric key will transform select box ......

匿名 ⋅ 2008/09/19 ⋅ 0

Linux配置防火墙,开启访问端口

vi /etc/sysconfig/iptables 如:-A INPUT -m state –state NEW -m tcp -p tcp –dport 139 -j ACCEPT(允许139端口通过防火墙) -A INPUT -m state –state NEW -m tcp -p tcp –dport 445......

技术小胖子 ⋅ 2017/11/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

浅谈设计模式之工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻...

佛系程序猿灬 ⋅ 今天 ⋅ 0

Dockerfile基础命令总结

FROM 指定使用的基础base image FROM scratch # 制作base image ,不使用任何基础imageFROM centos # 使用base imageFROM ubuntu:14.04 尽量使用官方的base image,为了安全 LABEL 描述作...

ExtreU ⋅ 昨天 ⋅ 0

存储,对比私有云和公有云的不同

导读 说起公共存储,很难不与后网络公司时代的选择性外包联系起来,但尽管如此,它还是具备着简单和固有的可用性。公共存储的名字听起来也缺乏专有性,很像是把东西直接堆放在那里而不会得到...

问题终结者 ⋅ 昨天 ⋅ 0

C++难点解析之const修饰符

C++难点解析之const修饰符 c++ 相比于其他编程语言,可能是最为难掌握,概念最为复杂的。结合自己平时的C++使用经验,这里将会列举出一些常见的难点并给出相应的解释。 const修饰符 const在c...

jackie8tao ⋅ 昨天 ⋅ 0

聊聊spring cloud netflix的HystrixCommands

序 本文主要研究一下spring cloud netflix的HystrixCommands。 maven <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clo......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部