学习http协议的三次握手和四次挥手 ~~笔记
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协议的三次握手和四次挥手 ~~笔记的更多相关文章
- TCP的三次握手与四次挥手笔记
TCP的三次握手与四次挥手笔记 TCP Flags URG: 紧急指针标志 ACK:确认序号标志 PSH:push标志 RST:重置连接标志 SYN:同步序号,用于建立连接过程 FIN: finish ...
- TCP协议的三次握手和四次挥手机制
核心知识点: 1.三次握手:seq和ack number 2.四次挥手:FIN和随机数 一.TCP/IP协议 TCP/IP协议(Transmission control protool/Interne ...
- TCP协议--TCP三次握手和四次挥手
TCP三次握手和四次挥手 TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急) 一.TCP三次握手 第一次握手 客户端向服务器发出连 ...
- TCP协议的三次握手和四次挥手
暂时需要的信息有: ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1 SYN(SYNchronization) : 在连接建立时用来同步序号.当SYN= ...
- 网络编程——TCP协议的三次握手和四次挥手
三次握手原理解析 TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND ...
- TCP协议的三次握手和四次挥手过程
TCP是一种面向连接(连接导向)的.可靠的基于字节流的传输层通信协议.TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认.对失序的数据重新排序.丢弃重复数据. 1.TCP/ ...
- TCP协议的三次握手、四次挥手
TCP三次握手 TCP的连接的建立需要发送三个包,一次称为三次握手(Three-way Handshake). 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 ...
- TCP/IP协议、三次握手、四次挥手
1.什么是TCP/IP协议 TCP/IP 是一类协议系统,它是用于网络通信的一套协议集合. 传统上来说 TCP/IP 被认为是一个四层协议 1) 网络接口层: 主要是指物理层次的一些接口,比如电缆等. ...
- TCP协议的“三次握手”和“四次挥手”
TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接.在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的.三次握手的目的是同步连接双方的 ...
随机推荐
- 跪啃SAM
struct SAM { ],size,last,pre[maxn],pos[maxn]; SAM() { size=; memset(ch[],,])); pre[]=-; } int idx(ch ...
- codevs1792 分解质因数
题目描述 Description 编写一个把整数N分解为质因数乘积的程序. 输入描述 Input Description 输入一个整数 N 输出描述 Output Description 输出 分解质 ...
- 中国福利彩票,牛B,开奖和数据传输有什么关系?
昨天,由中国教育电视台直播的福利彩票“双色球”15011期开奖,在没有事先预告的情况下突然取消.晚上11点40分左右,中国福利彩票发行管理中心唯一指定网络信息发布媒体——中彩网官方微博出乎意料地在网上 ...
- ZOJ3956 ZJU2017校赛(dp)
题意:给出n对(h,c) 记 sumh为选出的h的总和 sumc为选出的c的总和 你可以从中选出任意多对(可以不选) 使得 sumh^2-sumh*sumc-sumc^2 最大 输出最大值 输入 ...
- 洛谷 P1404 平均数
P1404 平均数 题目描述 给一个长度为n的数列,我们需要找出该数列的一个子串,使得子串平均数最大化,并且子串长度>=m. 输入输出格式 输入格式: N+1行, 第一行两个整数n和m 接下来n ...
- Android系统开发(4)——Autotools
Autotools工具的构成 1.autoscan autoscan是用来扫描源码文件夹生成configure.san文件的,configure.san包括了系统配置的基本选项.里面都是一些宏定义,我 ...
- [TypeScript] Collect Related Strings in a String Enum in TypeScript
As of TypeScript 2.4, it is now possible to define string enums, or more precisely, enums with strin ...
- C# .NET Visual Studio VS2008如何显示行号
工具-选项,然后勾选"显示所有设置",然后在文本编辑器下面找到所有语言,勾选"行号"即可.
- HDMI信号解析
参考资料:http://blog.sina.com.cn/s/blog_6cfd49b00102w00i.html: http://blog.csdn.net/gtkknd/article/detai ...
- uva 10452 Marcus
Problem I Marcus, help! Input: standard input Output: standard output Time Limit: 2 Seconds "Fi ...