TCP 三次握手、四次挥手

三次握手:(主要是server、client相互同步系列号)
SYN:同步序列号
ACK:确认序列号
第一次握手:client 向server 发送SYN,seq=x,申请同步client端序列号,client 进入 SYN_SENT状态;
第二次握手:server 回复确认,同步client段序列号成功,ACK=x+1,cleint 进入 ESTABLISHED 状态 ; 同时申请同步server端序列号,SYN seq= y,server 进入 SYN_RECV 状态;
第三次握手:clent收到确认,同时受到server同步申请,回复ACK=y+1,回复确认成功,server 进入 ESTABLISHED 状态;
四次挥手:(主要是client告诉server要断开连接,server告诉client要断开连接、双工)
FIN:数据发送到尾部,将要断开连接
第一次挥手:client 告诉 server,数据发送完了,要断开连接,FIN seq=x+2,client进入FIN+_WAIT1状态;同时对上一个接受数据包回复接收到确认,ACK=y+1;
第二次挥手:server收到FIN数据包,同意断开,对client回复确认数据包,ACK=x+3,server进入CLOSE_WAIT状态;client接收到ack确认数据包,进入FIN_WAIT2;
第三次挥手:server像clent申请断开连接,想client发送FIN数据包,FIN seq=y+1,server进入LAST_ACK状态;
第四次挥手:client接收到server的FIN数据包,client进入TIME_WAIT状态,同时确认收到FIN数据包,同意断开,想server发送ACK确认,ACK seg=y+2;
TCP 三次握手、四次挥手的更多相关文章
- [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解
一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:T ...
- tcp三次握手四次挥手那些事
建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.三次握手,四次挥手流程图如下: 一.首先看下如何通过三次挥手----------建立连接 首先客户端发送连接请求报文,服务端接受连接后回复AC ...
- 网络 TCP三次握手,四次挥手详解
三次握手,四次挥手可以说是炙手可热的面试题了,来看看它究竟长什么样子吧! 我们先把流程图贴上来 : 为什么这么复杂? 因为TCP是可靠性传输. 确认可靠传输的前提: TCP连接管理机制 用TCP首部 ...
- TCP三次握手四次挥手,通俗易懂版
三次握手四次挥手 三次握手 其实很好理解,三次握手就是保证双手都有发送和接受的能力.那么最少三次才能验证完成 即----> 客户端发送---服务端收到----服务端发送-- 1.客户端发送 -- ...
- TCP三次握手/四次挥手详解
一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程 ...
- TCP 三次握手四次挥手, ack 报文的大小.tcp和udp的不同之处、tcp如何保证可靠的、tcp滑动窗口解释
一.TCP三次握手和四次挥手,ACK报文的大小 首先连接需要三次握手,释放连接需要四次挥手 然后看一下连接的具体请求: [注意]中断连接端可以是Client端,也可以是Server端. [注意] 在T ...
- TCP三次握手四次挥手详解
转载 http://www.cnblogs.com/zmlctt/p/3690998.html 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需 ...
- wireshark抓包直观图解 TCP三次握手/四次挥手详解
转http://www.seanyxie.com/category/linux/ 作者:seanyxie | 一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负 ...
- 转---tcp三次握手四次挥手syn fin......
http://blog.chinaunix.net/uid-22312037-id-3575121.html转自 一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协 ...
- TCP三次握手/四次挥手
TCP 三次握手 TCP 连接是通过三次握手进行初始化的.三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程: 1. ...
随机推荐
- Mybatis-Plus入门
1 Mybatis-Plus简介 1.1 什么是Mybatis-Plus MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化 ...
- 常见JS写法
1.在DIV中找某个CLASS $('.doc_input', 'div')
- python核心编程(多线程编程)
1.全局解释器锁 2.threading模块 thread类
- 一个疑问,int对象5为何没有__dict__属性,而类却有,这是怎么做到的?对象不是都可以调用类属性吗?
a=1 print hasattr(a.__dict__) print hasattr(a.__class__.__dict__)
- JavaFX - 富互联网应用
JavaFX教程™ --必看https://www.yiibai.com/javafx /================= 富互联网应用 是那些提供与Web应用程序类似的功能,并可作为桌面应用程序体 ...
- 第十二节,OpenCV学习(一)图像的读取、显示、保存
一.读取图像 所谓的图像就是一个数组,对图像的处理就是对数字的处理 import cv2 import numpy as np img = cv2.imread('dog.jpg') print(im ...
- 24 Game
You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...
- python学习第31天
# 操作系统的发展历程 # 主要的人机矛盾是什么 : CPU的使用率 # 输入\输出数据和CPU计算没有关系 # 操作系统是怎么进化的 # 传统的纸带输入 # 磁带的存储降低了输入输出数据占用的时间, ...
- MQTT控制---pingreq
心跳请求 客户端向服务端发送PINGREQ报文用于: 在没有任何其他控制报文从client发给server时,告诉server,client还活着 请求server发送 响应确认它还活着 使用网络以确 ...
- Linux telnet安装
为什么需要telnet? telnet就是查看某个端口是否可访问.我们在搞开发的时候,经常要用的端口就是 8080.那么你可以启动服务器,用telnet 去查看这个端口是否可用. Linux cent ...