zoukankan      html  css  js  c++  java
  • 协议分析中的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

    长按进行关注。






  • 相关阅读:
    HDFS文件操作命令手册
    Hadoop——HDFS的构架
    Hadoop运行Jar文件时Output错误
    hadoop中DataNode消失挂掉的原因及解决方法
    MapReduce程序(一)——wordCount
    安装单机Hadoop系统(完整版)——Mac
    决策粗糙集与博弈粗糙集之比较
    关于决策粗糙集(三支决策)、概率粗糙集、博弈粗糙集的一点认识
    LeetCode-Repeated DNA
    生产环境安装centos时的磁盘规划
  • 原文地址:https://www.cnblogs.com/protosec/p/11673366.html
Copyright © 2011-2022 走看看