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. 九度oj 题目1052:找x

    题目1052:找x 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:9901 解决:5098 题目描述: 输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标 ...

  2. hihoCoder#1094 Lost in the City

    原题地址 限时10s,所以不用考虑什么算法了,暴力吧 分别按照3x3视野的四个方向去地图上匹配,把符合的地点标记出来,最后统一按照从上到下,从左到右的顺序输出. 代码: #include <io ...

  3. memcache 原理 & 监测 & 查看状态 & stats & 结构

    Mencache内存存储方式:slab/LRU,采用预先申请固定大小的内存页(slab/page),然后再把内存分成多个块(chunk) 先放一张从网上找到的memcache内存结构图,觉得非常的赞:

  4. linux 用户管理、权限管理

    1.useradd -[ugGdsce]2.passwd 用户名 ================================================ 1.chmod 2.chown 3. ...

  5. 在fragment中获取activity的组件

    在fragment中使用getActivity()即可获取activity的引用

  6. 交互设计:隐藏或显示大段文本的UI组件有哪些?

    应用场景: 在手机上要给列表中的每一项添加一个大段的介绍,应该用什么UI组件 A: 这里可以用,模态对话框,弹出提示,工具提示这类组件.模态对话框的好处,就是用关闭的按钮,用户操作方便:而弹出提示和工 ...

  7. 【electron系列之一】创建右下角通知栏小图标

    electron 用Tray对象来实现右下角通知栏小图标 一.先引入app, BrowserWindow来实现浏览器功能,接着引入Tray, Menu来实现右下角 二. new Tray('./pag ...

  8. Count the Colors-ZOJ1610(线段树区间求)

    Painting some colored segments on a line, some previously painted segments may be covered by some th ...

  9. 2017-10-03-afternoon

    P100 zhx 竞赛时间:????年??月??日??:??-??:?? 题目名称 a b c 名称 a b c 输入 a.in b.in c.in 输出 a.out b.out c.out 每个测试 ...

  10. P1165 日志分析 洛谷

    https://www.luogu.org/problem/show?pid=1165 题目描述 M 海运公司最近要对旗下仓库的货物进出情况进行统计.目前他们所拥有的唯一记录就是一个记录集装箱进出情况 ...