ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Tcp的三次握手和四次挥手

2021-08-09 02:01:42  阅读:177  来源: 互联网

标签:ACK 报文 确认 SYN Tcp 连接 四次 TCP 握手


TCP协议的简介:

  面向连接,可靠的基于字节流的传输层通信协议,将应用层的数据流分割成报文段发送给目标节点的TCP层,为了保证不丢包会为每个数据包打上序号,对方收到则发送ACK确认,未收则重传,使用校验和函数校验传输中是否有错误。

TCP报文头:

  20位报文头 = 2位长度源端口 +2位长度的目标端口+4位长度的报文序列号+4位的ACK确认号(期望收到下一次报文的第一个字节的序号)+1位偏移位(由于头部有可选字段长度不固定,因此他指出TCP报文的报文体距离起始处有多远)+保留域+TCP控制位(8个)+Window窗口(用来告知发送端接受端的缓存的大小,以此达到发送端控制发送数据的速率和流量控制)+检验和(奇偶校验)+紧急指针(只有紧急标识位为1时有效)

常见的有六个标志位:

URG:紧急指针标记,为1为表示紧急指针有效,为0则说明无效

ACK:确认序号表示,为1时表示报文号有效,为0表示报文中不含确认信息,忽略确认号字段

PSH:PUSH标志,为1表示带有PUSH标志的数据,接受方接受到该数据时应尽快将数据发给应用程序而不是放在缓冲区排队

RST:重试连接标志,用于重置由于主机崩溃或其他原因而出现错误的连接,或者用于拒绝非法的报文段和拒绝连接请求。

SYN:同步序号,用于建立连接过程,在连接过程中SYN等于1和ACK等于0表示数据段没有使用捎带的确认域,而连接应答稍带一个确认域的话即SYN等于1和ACK等于1

FIN:用于释放连接,为1时表示发送方已经没有数据可以发送了,即关闭本方数据流

三次握手的流程如下:

  1、机器A创建传输控制块TCB向机器B发出连接请求,SYN=1,seq=x,此时客户后端就会静茹SYN-SENT的同步已发送的状态。

  2、机器B如果同意连接会发送确认报文,确认报文中包含的两个位的字段SYN和ACK,此时机器B进入同步接受状态。

  3、当机器A收到确认报文后还要向服务器给出一个确认报文,确认报文的ACK等于1。

标签:ACK,报文,确认,SYN,Tcp,连接,四次,TCP,握手
来源: https://www.cnblogs.com/niuyg928/p/15116921.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有