第一次握手:client设置syn=1,随机产生一个序列号seq=x,将数据包发送到server。client进入syn_send状态,
等待server确认。
第二次握手:server查看client发来的数据包syn=1,得知是client发来的连接请求。server设置syn=1 ACK=1
ack = x+1 seq = y,并将数据包发送到客户端。server进入syn_rcvd状态。
第三次握手:client得到server的确认,查看ACK=1 ack=x+1。然后,再给server一个确认,设置ACK=1 ack=y+1.
server接收client包,查看ACK是否为1,ack是否为y+1,如果正确建立连接。同时进入established.

第一次挥手:A 设置 FIN=1 seq = x,将数据包发送到B,A进入FIN_WAIT_1状 态。等待B的确认。
第二次挥手:B 查看FIN,知道A是要释放连接。B设置ACK=1 ack = x+1 ,将确认返回A。B
进入CLOSE_WAIT。A接收该确认,进入FIN_WAIT_2状态。等待B的连接释放。
第三次挥手:B 设置 FIN=1 seq = y,将数据包发送到A,B进入LAST_ACK状态。等待A的确认。
第四次挥手:A 查看FIN,知道B是要释放连接。A设置ACK=1 ack = y+1 ,将确认返回B。A
进入TIME_WAIT。B接收该确认,进入CLOSED状态。

三次握手的原因:防止已经失效的报文发送到服务器端。
握手要3次,挥手要4次原因:连接时,服务器一直处于LISTEN状态,server接收到syn报文后,会将syn和ack同时返回。
释放连接时,只是一端不在发送报文,但还是可以接收的。另一端可以直接close。也可以等待发送完毕之后,再发送FIN
报文,所以是将,FIN和ACK发开发送。

java网络编程三次握手四次挥手的更多相关文章

  1. 网络 TCP三次握手,四次挥手详解

    三次握手,四次挥手可以说是炙手可热的面试题了,来看看它究竟长什么样子吧! 我们先把流程图贴上来 : 为什么这么复杂? 因为TCP是可靠性传输. 确认可靠传输的前提:  TCP连接管理机制 用TCP首部 ...

  2. [转]Linux服务器上11种网络连接状态 和 TCP三次握手/四次挥手详解

    一.Linux服务器上11种网络连接状态: 图:TCP的状态机 通常情况下:一个正常的TCP连接,都会有三个阶段:1.TCP三次握手;2.数据传送;3.TCP四次挥手. 注:以下说明最好能结合”图:T ...

  3. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器    定义:       ...

  4. 在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

  5. [na]TCP的三次握手四次挥手/SYN泛洪

    1.TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记. (2)确认序号:Ack序号,占32位, ...

  6. 救救孩子吧,到现在还搞不懂TCP的三次握手四次挥手

    本文在个人技术博客同步发布,详情可用力戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩...   前几天发了一个朋友圈,发现暗恋已久的女生给我点了个赞,于是我当晚辗转反侧.彻 ...

  7. TCP/IP三次握手四次挥手

    本文通过图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道.如图所示,给出了TCP通信过程的示意图. TCP 三次握手四次挥手 主要包括三部 ...

  8. tcp三次握手四次挥手那些事

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手.三次握手,四次挥手流程图如下: 一.首先看下如何通过三次挥手----------建立连接 首先客户端发送连接请求报文,服务端接受连接后回复AC ...

  9. 网络模型+三次握手+四次挥手+DNS+HTTPS

    网络模型+三次握手+四次挥手+DNS+HTTPS 这篇文章十分精华,所以整理一下: 一.网络模型 OSI七层模型,和TCP/IP五层模型(更为普遍) TCP/IP 协议集: 二.TCP协议(传输层)建 ...

随机推荐

  1. Django字段类型介绍

    一,通过makemigrations,migrate来修改数据, 1.Django的ORM支持修改表结构,修改完以后,执行 python manage.py makemigrations  pytho ...

  2. Codeforces Round #406 (Div. 2)滚粗记

    A 一看到题,不是一道解不定方程的裸题吗,调了好久exgcd. 其实一个for就好了啊 B 一直WA ON TEST 7真是烦,一想会不会是编号太大了,又写了一个map版本,无用. 调了好久好久才发现 ...

  3. bzoj2956: 模积和(数论)

    先算出无限制的情况,再减去i==j的情况. 无限制的情况很好算,有限制的情况需要将式子拆开. 注意最后的地方要用平方和公式,模数+1是6的倍数,于是逆元就是(模数+1)/6 #include<i ...

  4. kill -9 a postgres process

    在postgresql中,不推荐使用Kill -9直接杀掉异常连接,因为直接使用kill -9会引起整个数据库核心进程的重启,同时其他正常程序连接也会被杀掉. 现开启两个psql连接,然后使用Kill ...

  5. HDU--1874

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 分析:SPFA|Dijkastra. #include<iostream> #inc ...

  6. python编码问题FAQ

    http://note.youdao.com/noteshare?id=2cfb0ac4da042c2550aa3918beda81ec

  7. linux shell 通配符

    http://note.youdao.com/noteshare?id=4b6bc019e055c897c6dfb81fe2c17756

  8. STL源码分析-内存分配器

    http://note.youdao.com/noteshare?id=744696e5f6daf0f2f03f10e381485e67

  9. [DeeplearningAI笔记]卷积神经网络2.3-2.4深度残差网络

    4.2深度卷积网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 [残差网络]--He K, Zhang X, Ren S, et al. Deep Residual Learni ...

  10. mongodb角色权限

    角色说明:Read:允许用户读取指定数据库readWrite:允许用户读写指定数据库dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建.删除,查看统计或访问system.profileus ...