zoukankan      html  css  js  c++  java
  • IP协议解码详解

    协议分析 IP协议解码详解

    IP协议简介 IP,全称Internet Protocol,中文名叫因特网协议,它工作在OSI的网络层,它负责将数据传输到正确的目的地,同时也负责路由。无论传输层使用何种协议,都要依赖IP来发送和接受数据。
    IP提供一种无连接的传输机制,这就意味着在网络传输的每个数据报都作为独立的单元来对待。IP并不维护服务器和客户端之间的连接细节。
    IP不能保证数据传输的可靠性。然而,这些并不意味着分组将被毫无规则的忽略,而是仅在网络出现故障时才会发生数据丢失。
    下面我们来介绍一下IP数据报的格式、

    IP数据报格式,如图1,

    版本

    头部长度

    服务类型

    总长度

    标识

    分段标志

    分段偏移量

    生存时间

    协议

    校验和

    源地址

    目标地址

    选项

    填充

    数据

    (图1 IP数据报的格式)

    1. 版本:用于传输数据的IP版本,大小为4位;
    2. 头部长度:用于规定报头长度;
    3. 服务类型:用于设置数据传输的优先权或者优先级,其大小为8位;
    4. 总长度:指出数据报的总长,数据报总长=报头长度+数据长度,大小为16位;
    5. 标识:用于标识所有的分段,大小为16位;
    6. 分段标志:确定一个数据报是否可以分段,同时也指出当前分段后面是否还有更多分段,大小为3位;
    7. 分段偏移量:由目标计算机用于查找分段在整个数据报中的位置,大小位13位;
    8. 生存时间:设置数据报可以经过的最多路由器数。长度为8位;
    9. 协议:指定用于创建数据字段中的数据的上层协议,大小为8位;
    10. 校验和:检查所传输数据的完整性,大小为16位;
    11. 源地址:源IP地址,字段长度为32位;
    12. 目标地址:目标IP地址,字段长度为32位;
    13. 选项:不上一个必须的字段,字段长度具体取决于所选择的IP选项;
    14. 数据:包含网络中传输的数据,IP数据报还包括上层协议的报头信息;

    解码详解

    使用网络分析系统捕获IP数据包,其详细解码如图2,


    (图2 网络分析系统中IP数据包的详细解码)

    图2为网络分析系统中IP数据包的详细解码,下面我们来分别说明IP数据包的解码信息:

    版本:4,表示当前网络中为IPv4;
    头部长度:4,表示IP报头长度为5x4=20字节;
    服务类型:0,表示当前IP数据包中没有使用服务类型字段;
    总长度:40,表示该数据报总长为40字节;
    标识:表示该数据报的标识为0x41AB(16进制);
    分段标志:第二位为1,表示该数据报不能被分段,
    分段偏移量:由于没有被分段,所以该分段便偏移量为0;
    生存时间:表示该数据报最多可以经过128个路由;
    上层协议:6代表TCP协议;
    校验和:该数据报校验和为0x36A8(正确),表示该数据报是完整的;
    源IP地址:192.168.0.208;
    目标IP地址:192.168.0.92;

    选项:表示该数据报没有选项字段;
  • 相关阅读:
    Android 调用已安装市场,进行软件评分的功能实现
    二十六个月Android学习工作总结
    Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 错误 解决方案(android-ndk)
    【Android】神奇的android:clipChildren属性
    Android利用setLayoutParams在代码中调整布局(Margin和居中)
    android 使用代码实现 RelativeLayout布局
    Android 布局学习
    Erlang cowboy 处理不规范的client
    HTTP 响应
    把字符串转换为整数
  • 原文地址:https://www.cnblogs.com/ljl_falcon/p/2194073.html
Copyright © 2011-2022 走看看