• TCP/IP头格式




    一、先是常用的IP头格式。
    IP头格式:
    版本号 (4位)
    IP头长度 (4位)
    服务类型 (8位)
    数据包长度 (16位)
    标识段 (16位)
    标志段 (16位)
    生存时间 (8位)
    传输协议 (8位)
    头校验和 (16位)
    发送地址 (16位)
    目标地址 (16位)
    选项
    填充

    简单说明
    ============
    1. IP头长度计算所用单位为32位字, 常用来计算数据开始偏移量
    2. 数据包长度用字节表示, 包括头的长度, 因此最大长度为65535字节
    3. 生存时间表示数据被丢失前保存在网络上的时间, 以秒计.
    4. 头校验和的算法为取所有16位字的16位和的补码.
    5. 选项长度是可变的, 填充区域随选项长度变化, 用于确保长度为整字节的倍数.

    描述
    ============
    struct iphdr {
    BYTE versionihl;
    BYTE tos;
    WORD tot_len;
    WORD id;
    WORD frag_off;
    BYTE ttl;
    BYTE protocol;
    WORD check;
    DWORD saddr;
    DWORD daddr;
    /* Put options here. */
    };

    二、TCP头格式
    TCP头格式:
    源端口 (16位)
    目的端口 (16位)
    序号 (32位)
    确认号 (32位)
    数据偏移 (4位)
    保留 (6位)
    标志 (6位)
    窗口 (16位)
    校验和 (16位)
    紧急指针 (16位)
    选项
    填充

    简单说明
    ============
    1. 数据偏移用于标识数据段的开始
    2. 保留段6位必须为0
    3. 标志包括紧急标志、确认标志、入栈标志、重置标志、同步标志等。
    4. 校验和计算方式为将头与16位二进制反码和中的16位二进制反码加在一起。
    5. 选项长度是可变的, 填充区域随选项长度变化, 用于确保长度为整字节的倍数.
    6. 更详细的说明请参阅有关资料。

    描述
    ============
    struct tcphdr {
    WORD SourPort;
    WORD DestPort;
    DWORD SeqNo;
    DWORD AckNo;
    BYTE HLen;
    BYTE Flag;
    WORD Window;
    WORD ChkSum;
    WORD UrgPtr;
    /* Put options here. */
    }; 
  • 相关阅读:
    Reverse Integer
    First Bad Version
    Heaters
    Number of Segments in a String
    RPI学习--环境搭建_串口连接
    关键字const
    main函数参数的使用
    Redis 简单使用 and 连接池(python)
    南宁AI项目
    Go part 1 初探
  • 原文地址:https://www.cnblogs.com/zhihaowang/p/10128775.html
Copyright © 2020-2023  润新知