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. fd最大值和限制

    fd的数量决定了fd的最大值 在Linux下,系统全部能够打开的fd总数为: /proc/sys/fs/file-max,取决于内存 The file-max file /proc/sys/fs/fi ...

  2. bzoj 2588 Spoj 10628. Count on a tree (可持久化线段树)

    Spoj 10628. Count on a tree Time Limit: 12 Sec  Memory Limit: 128 MBSubmit: 7669  Solved: 1894[Submi ...

  3. ajax异步获取数据后动态向表格中添加数据(行)

    因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子 1.HTML页面 <!doctype html> ...

  4. [bzoj2229][Zjoi2011]最小割_网络流_最小割树

    最小割 bzoj-2229 Zjoi-2011 题目大意:题目链接. 注释:略. 想法: 在这里给出最小割树的定义. 最小割树啊,就是这样一棵树.一个图的最小割树满足这棵树上任意两点之间的最小值就是原 ...

  5. samba服務器下文件夾chmod權限技巧

    需要的效果: samba下文件夹(abc)不可以被重命名.不可以被刪除,其所有子目录可读可写. 如何做到: chmod 777 -R abc   # -R 使得abc下所有数据继承可读可写权限 chm ...

  6. 2011 ACM-ICPC 成都赛区A题 Alice and Bob (博弈动规)

    题目大意: 有K堆石子,每堆有Ki个.两人的操作能够是:             1 从某一堆拿走一个 假设该堆在此之后没有石子了.就消失             2 合并两个堆        求是否 ...

  7. C#的SplitPanel如何设置上下和左右

    定位到Orientation属性即可

  8. Apple Swift编程语言新手教程

    文件夹 1   简单介绍 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 7   枚举与结构 1   简单介绍 今天凌晨Apple刚刚公布了Swift编程 ...

  9. 静态链表的C++实现

    静态链表是使用数组实现的能够高速插入和删除数据的链表,静态链表和链式单链表比的缺点在于链表的长度仅仅能初始化设置好,而相相应普通的顺序存储的链表,静态链表不能实现高速的读写随意的元素. 当然静态链表给 ...

  10. POJ2773 Happy 2006【容斥原理】

    题目链接: http://poj.org/problem?id=2773 题目大意: 给你两个整数N和K.找到第k个与N互素的数(互素的数从小到大排列).当中 (1 <= m <= 100 ...