zoukankan      html  css  js  c++  java
  • IPv4分析

    IPv4的头部格式:

    image12

    1. Version

    版本号,默认是4。

    2. IHL(Internet Header Length)

    就是IPv4头部长度。这个长度的单位是32bit,一般是5,那么头部的长度就是5x32bit=160bit。

    3. DSCP(Differentiated Services Code Point),ECN(Explicit Congestion Notification)

    原来这8字节是被定义成TOS(Type of Service),现在被RFC2474定义成Differentiated services(差异化服务)和ECN

    背景:随着互联网的发展,各种各样的服务被提供,比如语音、视频、流音乐、网页、邮件等等。原来的TOS定义已经跟不上时代的需要,所以在1998年,IETF发布了RFC 2474,将原来的TOS替换成DSCP和ECN。

    4. Total Length

    整个数据包的长度,含头部,单位为Byte。

    5. Identification

    数据包标识,用来区分相同的包,比如ping包。

    6. Flags

    bit 0 : 保留,总是0

    bit 1 : Don’t Fragment, DF。表示不分片。当需要发送的数据大于最长数据包限制的时候,数据需要分片发送。如果这位置1,IP模块将不会对数据报进行分片。这种情况下,如果IP数据报长度超过MTU,IP模块将丢弃数据报并返回一个ICMP差错报文。

    bit 2 : More Fragment,MF。表示更多分片,除了数据报的最后一个分片外,其他分片都要把它置1.

    7. Fragment Offset

    分片的位移。(2^13 – 1) x 8 = 65528 bytes, 也就是说,最大的IP数据报长度为65528+20=65548字节。

    8. Time to Live, TTL

    防止数据拥塞用的,有一个初始值,比如64,每经过一个路由器自动-1,到0的时候就被销毁。

    9. Protocol

    上层协议号,比如ICMP是1,TCP是6,UDP是17.

    10. Header Checksum

    头部CRC校验,详细可以看这里:http://en.wikipedia.org/wiki/IPv4_header_checksum

    11. Source IP Address

    源IP地址

    12. Destination IP Address

    目标IP地址

    13. Options

    可选,不常用,后面再详细分析。

     

    抓包测试:

    用tcpdump抓包,  sudo tcpdump –ntx –i eth0 icmp

    抓一下ping数据包,我这里ping一下自己的主机craftor.org

    image13

    上面一个包是发送,下面的包是返回。

    0x4 协议版本,v4
    0x5 包头长度,5x32bit
    0x00 参照RFC2474,00是默认包类型
    0x0054 包总长为0x54=84
    0x59b0 ID
    0x4000 不分片,不分包
    0x40 TTL=64
    0x01 ICMP协议,ping属于ICMP协议
    0xbbbc CheckSum
    0xc0a82c81 SourceIP=192.168.44.129
    0xc64a71c8 DestinationIP=198.74.113.200
    0x0800~0x3637 Options
  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/craftor/p/3811739.html
Copyright © 2011-2022 走看看