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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 快速学习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 双方同时尝试关闭传输连接,等待对方确认。(同时发出分手)。
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
2月前
|
网络协议 安全 Linux
在Linux中,tcp三次握⼿的过程及原理?
在Linux中,tcp三次握⼿的过程及原理?
|
2月前
|
网络协议 Linux
在Linux中,如何理解Tcp/ip协议三次握手?
在Linux中,如何理解Tcp/ip协议三次握手?
|
4月前
|
网络协议 算法 Linux
技术笔记:Linux学习:TCP粘包问题
技术笔记:Linux学习:TCP粘包问题
35 0
|
网络协议 安全 Linux
Linux网络原理及编程(5)——第十五节 TCP的连接(三次握手、四次挥手)
本节我们来介绍TCP连接的建立和断开。我们主要介绍两个过程、两个状态。
196 0
Linux网络原理及编程(5)——第十五节 TCP的连接(三次握手、四次挥手)
|
缓存 算法 网络协议
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(四)|学习笔记
快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手
126 0
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(四)|学习笔记
|
网络协议 安全 Linux
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(二)|学习笔记
快速学习 CCNP 必备:Linux 网络抓包和 TCP 的三次握手
103 0
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(二)|学习笔记
|
网络协议 Linux 网络安全
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(三)|学习笔记
快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手
106 0
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(三)|学习笔记
|
缓存 运维 网络协议
CCNP 必备:Linux 网络抓包和 TCP 的三次握手|学习笔记
快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手
CCNP 必备:Linux 网络抓包和 TCP 的三次握手|学习笔记
|
运维 网络协议 算法
CCNP必备:Linux网络及TCP、IP协议详解(三)|学习笔记
快速学习CCNP必备:Linux网络及TCP、IP协议详解
143 0
CCNP必备:Linux网络及TCP、IP协议详解(三)|学习笔记
|
网络协议 Linux 网络架构
CCNP必备:Linux网络及TCP、IP协议详解(一)|学习笔记
快速学习CCNP必备:Linux网络及TCP、IP协议详解
122 0
CCNP必备:Linux网络及TCP、IP协议详解(一)|学习笔记
下一篇
无影云桌面