netmon工作原理

简介:

参考文献:

netmon中解析非1433端口的TDS协议

TDS的解析

在前面一篇博客netmon中解析非1433端口的TDS协议中我们提到了netmon如何去解析非1433端口的TDS。我们是通过在tcp.npl这个文件中添加命名实例的tcp端口号,让该端口的tcp包跳转到tds.npl中去解析。下面我们来看一下tds.npl中有哪些内容呢?首先我看到在tds.npl中定义了一个 TDSPacketTypeTable:

View Code

这里面的这些值是不是很熟悉?是的,这些就是我们TDS包的名字,比如我们会见到TDS:SQLBatch、TDS:Response等等。这些名词都是有netmon中的tds.npl这个parser解析出来,其实网络包中传输过来的就是一些二进制数据,通过这个value netmon解析出其中的内容。

OSI七层网络协议

Network Protocols and TDS Endpoints中提到:

"When the SQL Server Database Engine communicates with an application, it formats the communication in a Microsoft communication format called a tabular data stream (TDS) packet. The network SQL Server Network Interface (SNI) protocol layer, which replaces the Net-Libraries for SQL Server 2000 and Microsoft Data Access Components (MDAC), encapsulates the TDS packet inside a standard communication protocol, such as TCP/IP or named pipes.

上面提到了TDS packet会被tcp协议封装。这就涉及到了OSI七层网络协议的内容。OSI将网络通信工作分为七层,由高到低依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

各层的作用和应用

1.物理层。物理层规定了激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。物理层为上层协议提供了一个传输数据的物理媒体。属于物理层定义的典型规范包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。

2.数据链路层。数据链路层在不可靠的物理介质上提供可靠的传输。数据链路层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。

3.网络层。网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。网络层协议的代表包括:IP、IPX、RIP、OSPF等。

4.传输层。传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。

传输层协议的代表包括:TCP、UDP、SPX等。

5.会话层。会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。

6.表示层。表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。

7、应用层。应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。

在各层之间,数据是以什么单位进行传输的?

这个问题比较有意思,数据在各层之间的单位都是不一样的,在物理层数据的单位称为比特(bit);在数据链路层,数据的单位称为帧(frame);在网络层,数据的单位称为数据包(packet);传输层,数据的单位称为数据段(segment)。在netmon中有一个frame number这个列。应该就是数据链路层的传输单位。

netmon trace解析

netmon会解析出许多内容,下面分析一些主要的内容,如下表格所示:

Phase What How Why
Intial connection TCP:Flags=......S., SrcPort=60201, DstPort=37937,  TCP handshake Initial connection
TCP:Flags=...A..S., SrcPort=37937, DstPort=60201, mapping tcp session to socket
TCP:Flags=...A...., SrcPort=60201, DstPort=37937,  Sync starting sequence
  Sync  sliding window
Prelogin TDS:Prelogin, Version = 7.3 (0x730b0003),  Version, Encryption, SQL allocate worker and thread for new connection setting up contexts (encryption and MARS)
TDS:Response, Version = 7.3 (0x730b0003),  ThreadID, MARS
  InstanceName
Login   TLS handshake  
TLS:TLS Rec Layer-1 HandShake: Server Hello. Certificate. Server Hello Done.  
TLS:TLS Rec Layer-1 HandShake: Client Key Exchange.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec Layer-3 HandShake: Encrypted Handshake Message. authentication and identification
TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. channel encryption negotiation,
TLS:TLS Rec Layer-1 SSL Application Data  
TDS Batch/ response TDS:SQLBatch, Version = 7.3 (0x730b0003),   TDS command /response Process SQL request
TDS:Response, Version = 7.3 (0x730b0003), 
Keepalive TCP:[Keep alive]Flags=...A...., SrcPort=60201, DstPort=37937,  maintain idled session reduce connection overhead.
TCP:[Keep alive ack]Flags=...A...., SrcPort=37937, DstPort=60201,  Deal with idle time before connection.close
Disconnect TCP:Flags=...A...F, SrcPort=61543, DstPort=37937, TCP session finish  
TCP:Flags=...A...., SrcPort=37937, DstPort=61543, Close c/s session, delete port pair
TCP:Flags=...A...F, SrcPort=37937, DstPort=61543, Recycle the worker, SPID etc.
TCP:Flags=...A...., SrcPort=61543, DstPort=37937,  Release TCP session memory.

 

 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/08/23/2652169.html,如需转载请自行联系原作者

目录
相关文章
|
23天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
33719 134
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
6天前
|
人工智能 自然语言处理 监控
OpenClaw skills重构量化交易逻辑:部署+AI全自动炒股指南(2026终极版)
2026年,AI Agent领域最震撼的突破来自OpenClaw(原Clawdbot)——这个能自主规划、执行任务的智能体,用50美元启动资金创造了48小时滚雪球至2980美元的奇迹,收益率高达5860%。其核心逻辑堪称教科书级:每10分钟扫描Polymarket近千个预测市场,借助Claude API深度推理,交叉验证NOAA天气数据、体育伤病报告、加密货币链上情绪等多维度信息,捕捉8%以上的定价偏差,再通过凯利准则将单仓位严格控制在总资金6%以内,实现低风险高频套利。
2821 11
|
19天前
|
人工智能 安全 机器人
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI助手,支持钉钉、飞书等多平台接入。本教程手把手指导Linux下部署与钉钉机器人对接,涵盖环境配置、模型选择(如Qwen)、权限设置及调试,助你快速打造私有、安全、高权限的专属AI助理。(239字)
7274 21
OpenClaw(原 Clawdbot)钉钉对接保姆级教程 手把手教你打造自己的 AI 助手
|
18天前
|
人工智能 机器人 Linux
OpenClaw(Clawdbot、Moltbot)汉化版部署教程指南(零门槛)
OpenClaw作为2026年GitHub上增长最快的开源项目之一,一周内Stars从7800飙升至12万+,其核心优势在于打破传统聊天机器人的局限,能真正执行读写文件、运行脚本、浏览器自动化等实操任务。但原版全英文界面对中文用户存在上手门槛,汉化版通过覆盖命令行(CLI)与网页控制台(Dashboard)核心模块,解决了语言障碍,同时保持与官方版本的实时同步,确保新功能最快1小时内可用。本文将详细拆解汉化版OpenClaw的搭建流程,涵盖本地安装、Docker部署、服务器远程访问等场景,同时提供环境适配、问题排查与国内应用集成方案,助力中文用户高效搭建专属AI助手。
5130 12
|
20天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
5901 23
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手

热门文章

最新文章