协议分析中的TCP/IP网络协议

news/2024/7/5 3:39:59

 TCP/IP协议作为互联网的基础,在协议分析中不可或缺,本文介绍在对协议进行分析还原的过程中的一些要点,快速掌握协议还原的精髓

注意,本文比较枯燥乏味,若非需要了解TCP/IP协议相关信息,建议绕行。

TCP/IP协议是一个网络通信模型,以及一整个网络传输协议家族,是互联网基础协议。 该协议家族的两个核心协议:TCP和IP。

TCP/IP协议模型的四层结构如下图所示:

0?wx_fmt=png

 

在Wireshark中,一个普通TCP数据报文的链路层对应MAC地址,网络层对应IP地址,传输层对应TCP端口,应用层对应数据体部分。

01

链路层

0?wx_fmt=png

第一层包含源mac及目的mac,随着传输路径的变化会发生变化,在mac之后,是下层网络协议的类型,图中,下层为IP协议。

在协议解析中,需要关注的是图中type这个字段的内容。

02

网络层

0?wx_fmt=png

在TCP/IP协议中,网络层主要内容为IP地址,根据IP头结构进行解析即可获得每项的内容。需要关注的是:

总长度 total length:为整个IP报文,从IP层到整个报文最后的长度。
分片标记 fragment flag:标识是否IP分片,如果IP分片的话要有分片处理过程。

传输层协议 transmission protocol:标记下层使用的协议,如TCP、UDP等,本文中为TCP协议。

源IP source ip:源IP地址。

目的IP destination ip:目的IP地址。

03

传输层

0?wx_fmt=png

传输层协议用来保障传输的过程,对TCP而言,同样根据TCP头结构即可进行解析获得每项的内容。

TCP协议中,需要关注源及目的端口,它们与网络层的源及目的地址构成四元组,同一个数据流,必然拥有相同的四元组,当然,流的上下行,源与目的是按对组织的,在协议解析中,四元组是不可忽略的。

对TCP,使用当前报文序号及响应报文序号来保障协议的可靠性,对协议解析而言,我们需要使用报文序号及响应序号来进行报文排序,即通常说的TCP排序,在解析中,一般而言,单向排序即可解决问题。

当前报文序号即图中的sequence num,响应报文序号即acknowledge number,在同一个方向中sequence num加上传输的data的长度即为下一个报文的sequence num,即图中的next sequence num。另外,序号是相对与一条连接的第一个报文的相对值,两个方向独立编号。

04

应用层

0?wx_fmt=png

应用层就是传输的具体内容,一般而言,就是需要解析的部分了。

对TCP承载的协议还原,切记,TCP排序及根据四元组建立会话会极大地提高解析效率。

0?wx_fmt=jpeg

扫我进行关注。


http://lihuaxi.xjx100.cn/news/237947.html

相关文章

实现线程哪种方法更好_实施数据以实现更好的用户体验设计的4种方法

实现线程哪种方法更好Gone are the days when design used to rely mainly on the color palettes and the creativity of the designer. In the rapidly expanding technological world of today, it is essential to work across departments to enhance the screen experien…

DispatcherServlet之HandlerAdapter的handle

2019独角兽企业重金招聘Python工程师标准>>> 注:SpringFramework的版本是4.3.x。 1.DispatcherServlet的doService方法时序图 图1 DispatcherServlet的doService方法时序图 2.AnnotationMethodHandlerAdapter的handle方法时序图 图2的原图在Gith…

Java学习笔记二十五:Java面向对象的三大特性之多态

Java面向对象的三大特性之多态 一:什么是多态; 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现。 现实中,比如我们按下 F1 键这个动作&am…

Observables简介以及它们与Promise有何不同

‘Observables’, ‘Observables’, ‘Observables’...Yes! Today, we will talk about this often discussed word of the market. Well also learn how they are different from Promises (havent heard about Promises? Not to worry! You will know more soon). Let’s s…

Android组件框架:Android组件管理者ActivityManager

关于作者 郭孝星,程序员,吉他手,主要从事Android平台基础架构方面的工作,欢迎交流技术方面的问题,可以去我的Github提issue或者发邮件至guoxiaoxingse163.com与我交流。 第一次阅览本系列文章,请参见导读&a…

区块链推广所需的三个关键因素

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!在现有产业中推广区块链的3个关键 区块链的设计是为了展示无可辩驳的真理,而不是依靠权威的控制。虽然这听起来很理想,但问题是&#…

Wireshark使用教程:不同报文颜色的含义

“ Wireshark色彩规则。”在Wireshark主界面,报文会显示各种各样的颜色,它们表示不同的含义。这些颜色,是由色彩规则控制的。对这些颜色进行适当的了解,对分析报文有很大帮助。01—设置色彩规则有两个入口,一个在报文上…

区块链社交APP协议分析预告

2017年,比特币的火热,直接导致了代币市场的繁荣;2018年,作为信用体系的未来解决方案,区块链引发了互联网原住民的淘金热。作为风口上的引流神器,区块链技术与社交网络结合起来,产生了一系列区块…