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 的三次握手(二)


三、TCP包头结构

image.png

(窗口为数据的大小,发送数据包是与对方协商数据有多大。)

窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量。

校验和:提供额外的可靠性

紧急指针:标记紧急数据在数据字段中的位置

选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,选项部分最长为:(2^4-1)*4-20=40字节

标记位:关键的ACK,SYN,FIN。

常见选项:

最大报文段长度:Maxium Segment Size, Mss

窗口扩大:Windows Scaling

时间戳:Timestamps(前20个字节必须要有,其他的字节不做要求)


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

FTP,Telnet,HTTP对应的都有端口号,DNS比较特殊,既会用TCP协议也会用UDP协议,DNS(网络文件系统,端口号不固定,有多个端口号)目前正在使用的端口号都可以查询到,例如|grep9527查询9527端口号是否被使用在某些环境中,基于安全的问题,可能会修改端口号,端口号是用来标识上层应用程序的地址的

大部分软件会用单端口,个别会用多端口。

NFS network file system 端口号不固定。

Tcp协议第一层为应用层application;第二层为传输层transport为上层提供服务,需要加标记,通过标记体现上层应用地址,通过上层编号找到对应的软件;

image.png

当一个数据包发来,最下面是物理层;上面是数据量层;在上面是网络层;在上面是传输层、绘画层等等;

在TCP协议中没有这么复杂。上面一层叫应用层(有好多个),第二层为传输层(为上层提供服务,应该加标记,体现该数据应该发给那个软件)。


五、有限状态机

客户端先发送一个 FIN 给服务端,自己进入了 FIN_WAIT_1 状态,这时等待接收服务端的报文,该报文会有三种可能:

1、只有服务端的 ACK

2、只有服务端的 FIN(同时提出分手)

3、基于服务端的 ACK,又有 FIN

1、只收到服务器的 ACK,客户端会进入 FIN_WAIT_2 状态,后续当收到服务端的 FI N时,回应发送一个 ACK, 会进入到 TIMEWAIT 状态,这个状态会持续 2MSL(TCP 报文段在网络中的最大生存时间,RFC 1122 标准的建议值是 2min).客户端等待 2MSL,是为了当最后一个 ACK 丢失时,可以再发送一次。因为服务端在等待超时后会再发送一个 FIN给客户端,进而客户端知道 ACK 已丢失

2、只有服务端的 FIN ,回应一个 ACK 给服务端,进入 CLOSING状态,然后接收到服务端的 ACK 时,进入 TIMEWAIT 状态

3、同时收到服务端的 ACK 和FIN,直接进入 TIMEWAIT 状态

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
5月前
|
网络协议 安全 Linux
在Linux中,tcp三次握⼿的过程及原理?
在Linux中,tcp三次握⼿的过程及原理?
|
5月前
|
网络协议 Linux
在Linux中,如何理解Tcp/ip协议三次握手?
在Linux中,如何理解Tcp/ip协议三次握手?
|
7月前
|
网络协议 算法 Linux
技术笔记:Linux学习:TCP粘包问题
技术笔记:Linux学习:TCP粘包问题
48 0
|
8月前
|
网络协议 安全 Go
TCP基础详解:Telnet回音服务器搭建
TCP基础详解:Telnet回音服务器搭建
93 0
|
网络协议 Linux 网络性能优化
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(一)|学习笔记
快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(一)|学习笔记
|
缓存 算法 网络协议
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(四)|学习笔记
快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(四)|学习笔记
|
网络协议 Linux 网络安全
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(三)|学习笔记
快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手
CCNP 必备:Linux 网络抓包和 TCP 的三次握手(三)|学习笔记
|
缓存 运维 网络协议
CCNP 必备:Linux 网络抓包和 TCP 的三次握手|学习笔记
快速学习CCNP 必备:Linux 网络抓包和 TCP 的三次握手
CCNP 必备:Linux 网络抓包和 TCP 的三次握手|学习笔记
|
网络协议 Linux 网络架构
CCNP必备:Linux网络及TCP、IP协议详解(一)|学习笔记
快速学习CCNP必备:Linux网络及TCP、IP协议详解
CCNP必备:Linux网络及TCP、IP协议详解(一)|学习笔记
|
运维 网络协议 算法
CCNP必备:Linux网络及TCP、IP协议详解(三)|学习笔记
快速学习CCNP必备:Linux网络及TCP、IP协议详解
CCNP必备:Linux网络及TCP、IP协议详解(三)|学习笔记