CCNP 必备:Linux 网络抓包和 TCP 的三次握手(一)|学习笔记

简介: 快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手

开发者学堂课程【Linux网络进阶 - TCP/IP协议及OSI七层模型CCNP 必备:Linux 网络抓包和 TCP 的三次握手学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/552/detail/7628


CCNP 必备:Linux 网络抓包和 TCP 的三次握手(一)


内容介绍:

一、三次握手

二、有限状态机 FSM:Finite State Machine

三、TCP包头结构

四、映射第四层到应用程序

五、有限状态机

六、客户端的典型状态转移

七、TCP 超时重传

八、拥塞控制

九、UDP 特性

回顾:六个重要的标记位分别为:urg、ack、psh、rsp、sin、fin

两个主机通讯之前,只要进行tcp协议,必须进行三次握手。三次握手通讯过程,如果A与B进行通讯,A给B发一个同步消息,把syn的标记设为1,回应的数据包都标记为1。

只要有tcp协议的,都可以看到三次握手。网络中有很多软件应用来进行通讯都是进行tcp的,例如:ssh可以进行tcp通讯(ssh192.168.30.128)。

前三次tcp就是三次握手,例如:

Arp是协议

image.png

后面的就是已经建立连接之后是sshv2协议。100兆128是第一个,第二个是从128到100的,第三次握手从100又回到128.(synsyn ack ack

Tcp协议的完整名称为:transmission control protocol.

image.png

Source port为原端口56250(随机的)对应db ba

Destination port为目标端口22对应16

Segment number为序号0(0为相对编号)对应b0 40 9f 43(为绝对编号)。

Acknowledgment number 为确认编号为0(0代表无法确认)

fiags为标记。

image.png

syn为第一个包。

建立连接需要三次握手,主要标记了ack和syn

怎么确认三次握手的第一次握手?

看所有位中是否只有syn是1,其它位都是0.

 image.png

此图为客户端主动发出断开请求,实则客户端和服务端都可发出断开请求。

主动提出断开连接的,提出标记位是FIN(finish)=1,数据包假设为u,状态切换为FIN-WAIT-1。

对方收到断开连接的请求之后会立即响应,ACK=1;从ESTAB-LISHED切换成为CLOSE-WAIT,之后进行残留数据传送;

对方收到信息后从wait1切换到wait2;

Fin=1为服务器同意断开,将残留数据传输完毕之后,客户端切换到time-wait阶段,此阶段将持续两倍MSL时间(消息的最大生存期),时间结束之后为closed。

为什么要等两倍MSL时间?

数据可能先发后到,需要等待数据彻底收到。

image.png


一、TCP三次握手

上图包含了5种状态分别为:CLOSED,SYN-SENT,ESTAB-LISHED,LISTEN,SYN-RCVD;

只要采用tcp协议,就要采用三次握手

a给b发送同步消息,第一次握手把标记位设为1,b回应的数据包把syn和ack都设为1,第三次握手ack为1

Header Length头部长度  Source Port 源端口

Destination Length 目标端口

如何知道是否为三次握手?

SYN为1,其余全为0

tcp程序发送时每个程序都有自己的端口号,tcp协议的第一个首部就是目标程序和源程序的端口号,第三个字段叫做序列号,即数据包的编号,第四个字段是确认的编号,还有六个重要标记类,

ssh 192.168.30.128基于tcp协议通讯


二、有限状态机 FSM:Finite State Machine

  1. CLOSED  没有任何连接状态。
  2. LISTEN  侦听状态,等待来自远方 TCP 端口的连接请求。
  3. SYN-SENT  在发送连接请求后,等待对方确认。
  4. SYN-RECEIVED  在收到和发送一个连接请求后,等待对方确认。
  5. ESTABLISHED  代表传输连接建立,双方进入数据传送状态。
  6. FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认。
  7. FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求。
  8. TIME-WAIT  完成双向传输连接关闭,等待所有分组消失。
  9. CLOSE-WAIT  被动关闭,收到对方发来的关闭连接请求,并已确认。
  10. LAST-ACK  被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失。
  11. CLOSING 双方同时尝试关闭传输连接,等待对方确认。(同时发出分手)。
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
机器学习/深度学习 传感器 数据采集
机器学习赋能制造业:预测性维护、质量控制和智能物流优化
制造业借助机器学习和深度学习提升效率,通过预测性维护避免设备故障,利用质量控制模型检测产品缺陷,及运用智能物流优化降低运输成本。示例代码包括基于LSTM的设备故障预测和随机森林分类器的质量控制模型。这些技术革新生产流程,提高效率,降低成本,增强企业竞争力。
|
测试技术 数据库
毕业论文提交系统的设计与实现(论文+源码)_kiac
毕业论文提交系统的设计与实现(论文+源码)_kiac
|
存储 算法
410数据结构学习强化——常见数据结构定义和算法总结(三)
410数据结构学习强化——常见数据结构定义和算法总结
240 1
410数据结构学习强化——常见数据结构定义和算法总结(三)
|
安全 数据库
软考——软件设计师:第二章:数据库技术考点总结(完整篇)(下)
软考——软件设计师:第二章:数据库技术考点总结(完整篇)(下)
软考——软件设计师:第二章:数据库技术考点总结(完整篇)(下)
|
C# 决策智能
运筹优化学习13:C#中Gurobi的配置及测试
运筹优化学习13:C#中Gurobi的配置及测试
运筹优化学习13:C#中Gurobi的配置及测试
|
Web App开发 缓存 安全
与HTTP相关的各种概念
与HTTP相关的各种概念
246 0
与HTTP相关的各种概念
|
数据中心
【阿里云资讯】世纪互联牵手阿里云 数据中心全面升级混合云部署
9月22日,在“ICT中国 2016高层论坛”上,中国最大的第三方独立数据中心运营商世纪互联与阿里云签署了战略合作协议,将携手共建企业混合IT(混合云)生态,在政府、公共事业、金融、电商、游戏、教育、农业、娱乐、医疗、汽车、制造业等领域共同打造有行业特色的混合IT解决方案。
4208 0