流,对话,会话,连接等一些基本概念

我在工作这些年中,陆陆续续接触到一些毕业生和很多的新手。在分析报文数据我发现很多人对于一些基本概念并不是特别的明确,尽管他们都有计算机网络的基础,甚至已经学习完TCP/IP卷一的内容。但是理论的学习和实际的操作还存在一些差距,尤其是一些wireshark和实际的项目工程中提供的概念很多人并不是很明确,因此有必要我这里面单独列出该章节进行说明,作为我的专栏《wireshark从入门到精通》中的其中一篇。

1,wireshark软件和报文数据之间的关系
我觉得wireshark可以对应的理解为数据库管理软件,如mysql等。而pcap文件可以理解为一个具体的数据库,pcap文件的格式我在前面有单独章节的讲解,其实就是一种文件结构并且能够被wireshark所解析,像.sql文件能够被mysql解析一样。而报文文件中的流(无法构成流的可以理解为对话)可以对应的理解为数据库中的表,有多少条流就对应着多少个数据表(流的概念会面会详细说)。一条流中的报文对应着数据表每一行的内容,wireshark所提供的协议字段解析可以理解为数据表的列属性。总的来说一个pcap文件包含多条流,每条流包含多片数据报文,每个数据报文包含许多字段内容。

2,什么是流
流是通常传输层的概念(这里所说的流是wireshark提供的stream,由于像QUIC等协议中也有stream的概念,我们不做讨论),是通信双方进行数据传递的一个虚拟通道。既然是一个虚拟通道就不是真是存在的,事实上同一时刻,网络中存在着多个用户的请求报文在同一个实际的物理线路上传递。如何保证用户A的数据不会传给用户B,就是靠流这样的一个虚拟通道确定通信的双方。工程上所说的流往往指的是TCP或者UDP流。对于TCP以及UDP流的构成是五元组,即源端口,目的端口,源IP,目的IP,以及传输层协议类型。有了这样一个五元组,那么同一时刻网络上便存在这这样一个唯一的链接,即使两个用户的每一片报文数据在同一根物理线路上交叉传递,也能保证数据能够正确的传递,流构建了虚拟链路的唯一性。一般的教材中流的概念提及较少,但是实际工程上的使用非常的频繁,往往都是需要构建流表。wireshark也是利用五元组对杂乱无章的数据进行了分类,形成了一

猜你喜欢

转载自blog.csdn.net/javajiawei/article/details/103603436