http协议是基于tcp协议的  所以应该说是tcp协议的三次握手和四次挥手

    SYN:请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1

    FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接

  序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。

  三次握手:

    客户端A向服务器发送报文段,报文段携带SYN=1码和初始序列号seq=x(客户端随机生成的), 告诉服务器我想建立连接

    服务器收到报文,因SYN=1知道客户端A是想建立连接,发送报文段给客户端A,报文携段带 SYN=1,ACK=seq(客户端A发送的seq)+1,和序列号seq=x(服务器随机生成的),告诉客户端可以建立连接

    客户端A收到服务器的报文段后验证ACk码,如果正确向服务器发送报文段,携带SYN=1,ACK=seq(服务器发送过来的序列号)+1,告诉服务器建立连接开始、

  四次挥手:

    客户端A向服务器发送报文段携带FIN=1和seq=x(客户端随机生成的),告诉服务器数据传输完毕请求关闭连接,

    服务器收到报文段因FIN=1得知关闭连接请求,发送客户端A报文携带ACK=seq(客户端A发送的seq)+1,和序列号seq=x(服务器随机生成的),告诉客户端可以关闭与服务器的单向连接,(这时候服务器如果有数据客户端依然要接收)

    客户端A(进入等待状态)等待服务器数据发送完毕,服务器数据传输完毕,服务器会向客户端发送报文段携带ACK=seq+1,和序列号seq=x,(这里的序列号和ack和上一步数据一样)告诉客户端服务器数据传输完毕,请请求关闭连接,进入等待状态等待客户端确认关闭连接。

    客户端A收到服务器的关闭连接验证ack码,确认后发送报文段携带ACK=seq(服务器发送过来的序列号)+1和seq=客户端A第一次发送请求关闭连接时的seq+1,然后进入等待状态,等待2MSL的时间后关闭连接。

  在说四次挥手时最后一个步骤  客户端等待2MSL时间,是因为 如果服务器如果没有收到最后的   客户端发送确认服务器关闭连接的报文段,服务器会一直向客户端发送报文段(关闭服务器连接请求),这个2MSL时间是 报文存在的最大时间。

  试想:如果 客户端发送确认服务器关闭连接的报文段丢失,使得服务器处于等待状态的服务器收不到客户端已发送的确认服务器关闭连接的报文段,服务器因超时重传报文段,而 客户端能在2MSL时间内收到这个重传的报文段,接着客户端重传一次确认关闭连接,重新启动2MSL计时器,最后A和B都进入到关闭连接状态,若客户端不等待一段时间,而是发送完报文段后立即释放连接,则无法收到服务器重传的报文段,所以不会再发送一次确认报文段,则服务器无法正常进入到关闭连接状态。

学习http协议的三次握手和四次挥手 ~~笔记的更多相关文章

  1. TCP的三次握手与四次挥手笔记

    TCP的三次握手与四次挥手笔记 TCP Flags URG: 紧急指针标志 ACK:确认序号标志 PSH:push标志 RST:重置连接标志 SYN:同步序号,用于建立连接过程 FIN: finish ...

  2. TCP协议的三次握手和四次挥手机制

    核心知识点: 1.三次握手:seq和ack number 2.四次挥手:FIN和随机数 一.TCP/IP协议 TCP/IP协议(Transmission control protool/Interne ...

  3. TCP协议--TCP三次握手和四次挥手

    TCP三次握手和四次挥手 TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急) 一.TCP三次握手   第一次握手 客户端向服务器发出连 ...

  4. TCP协议的三次握手和四次挥手

    暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN= ...

  5. 网络编程——TCP协议的三次握手和四次挥手

    三次握手原理解析 TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND ...

  6. TCP协议的三次握手和四次挥手过程

    TCP是一种面向连接(连接导向)的.可靠的基于字节流的传输层通信协议.TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认.对失序的数据重新排序.丢弃重复数据. 1.TCP/ ...

  7. TCP协议的三次握手、四次挥手

    TCP三次握手 TCP的连接的建立需要发送三个包,一次称为三次握手(Three-way Handshake). 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 ...

  8. TCP/IP协议、三次握手、四次挥手

    1.什么是TCP/IP协议 TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说 TCP/IP 被认为是一个四层协议 1) 网络接口层: 主要是指物理层次的一些接口,比如电缆等. ...

  9. TCP协议的“三次握手”和“四次挥手”

    TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的.三次握手的目的是同步连接双方的 ...

随机推荐

  1. HDU 5420 Victor and Proposition

    Victor and Proposition Time Limit: 6000ms Memory Limit: 524288KB This problem will be judged on HDU. ...

  2. CentOS7下搭建postfix邮箱服务器并实现extmail的web访问

    http://blog.51cto.com/zero01/2064693 https://blog.csdn.net/a5nan/article/details/52510887

  3. csu - 1538: Shopping (贪心)

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1538 很奇妙的一个题,开始没有思路.问了别人才知道. 题目的意思可以理解成上图中,从0点开始向右走 ...

  4. windows安装docker

    主要參考:http://docs.docker.com/installation/windows/ [1]安装完毕后同意后可能会报错: error in run: Failed to start ma ...

  5. 用Visual Studio 2010 打开Visual Studio 2013 (C#专用)

    1.更改.sln 1)将Microsoft Visual Studio Solution File, Format Version 12.00   改成11.00 2)将 # Visual Studi ...

  6. hdu oj 3127 WHUgirls(2009 Asia Wuhan Regional Contest Online)

    WHUgirls Time Limit: 3000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total ...

  7. 百度编辑器拦截上传图片提交上传腾讯server并返回腾讯url

    微信图文编辑时图片必须为上传到腾讯server的url,外连接所有屏蔽,则须要改动百度编辑器的源代码,源代码详细处理地方例如以下图.类为BinaryUploader.java InputStream ...

  8. C中多线程开发

    1 引言  线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期.solaris是这方面的佼佼者.传统的 Unix也支持线程的概念,可是在一个进程(proce ...

  9. 利用SEH进行代码混淆

    这几天在重看SEH机制,收获颇丰. 随手写了一个用SEH进行跳转的代码贴于此处以作纪念. 当发生异常,并捕捉了异常.在OS的异常处理机制下.会进入异常过滤函数. 过滤函数能够返回EXCEPTION_E ...

  10. web 开发之js---js 实现地址栏的表单提交加密编码

    以前在做嵌入式web时,曾经想过cgi加密,原来js可以直接实现,太好了,这里js在客户端实现编码和解码 一.在地址栏直接输入:javascript:str=encodeURI("笃行天下& ...