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

 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

扫我进行关注。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值