linux幼儿园

  • 首页
  • 信息安全
    • 红队
    • 密码学
  • 软件
  • 硬件
  • 活动目录
  • 知识点
  • linux干货
  • linux命令集
    • 磁盘管理
    • 文档编辑
    • 设备管理
    • 网络通讯
    • 系统管理
    • 文件管理
    • 其他命令
  1. 首页
  2. 信息安全
  3. 正文

TCP三次握手和四次挥手中的ACK为什么总是SYN + 1或者FIN +1而不是+其他数值?

2020年03月13日 70点热度 0人点赞 0条评论

TCP 三次握手的时候

1、客户端 向服务端发起连接请求,这个时候客户端将发送一个SYN分节(假设其值为J),它告诉服务端我发送数据的初始序列号将是J。

2、服务端收到这个请求后,必须确认(ACK) 客户的SYN(J+1),同时自己也得发送一个SYN(假设其值为K) 分节,它也是告诉对端我发送数据的初始序列号将是K。

3、客户端收到服务端的确认(ACK=J+1),这个时候客户端还必须向服务端做一个确认SYN(K+1)。

这样三次握手结束,完全连接。

这里面所有的ACK 都是收到的一个SYN 值 + 1,这个+1 是因为SYN 占据一个字节的序列号空间,所以每一个SYN 的ACK 中的确认号都是该SYN的初始序列号+1.

同样的,每一个FIN 的ACK 中的确认号也为该 FIN 的序列号 +1

 

TCP三次握手中SYN,ACK,Seq三者的关系

TCP(Transmission Control Protocol)传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;

第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可
标签: SYN + 1 三次握手
最后更新:2020年03月13日

jcghaier

from zero to hero

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复
最新 热点 随机
最新 热点 随机
windows入侵检查流程 安全事件应急响应工具箱 利用腾讯轻量服务器搭建FRP服务 Windows局域网渗透(IPC$管道) 国内三大运营商宽带线路及分级介绍(联通篇) Windows Server 2012 R2 辅助域控制器搭建
windows入侵检查流程
compgen命令 - 列出所有Linux命令 nstat命令 - 监视内核的SNMP计数器和网络接口状态 pkill命令 - 按照进程名杀死进程 cfdisk命令 - 用于磁盘分区 通过CD-ROM/ISO安装centos7.x系统 localectl命令 - 控制系统的本地化与键盘布局
标签聚合
Debian tcp 深信服 X.509 勒索病毒 iptables 防火墙 zabbix nmap CentOS
书签
  • Linux就该这么学
  • pfschina.org
  • ruyo
  • 佐须之男
  • 大象笔记
  • 小陈博客
  • 我能过软考
  • 教父爱分享
  • 散尽浮华
  • 现代魔法学院

COPYRIGHT © 2020 linux幼儿园. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

51la