zoukankan      html  css  js  c++  java
  • tcp、udp协议栈

    tcp
    tcp

    struct tcphdr {
         __be16    source; //源端口
         __be16    dest; //目的端口
         __be32    seq; //序列号
         __be32    ack_seq; //确认号
    #if defined(__LITTLE_ENDIAN_BITFIELD)
         __u16     res1:4,
              doff:4, //头长度
              fin:1,
              syn:1,
              rst:1,
              psh:1,
              ack:1,
              urg:1,
              ece:1,
              cwr:1;
    #elif defined(__BIG_ENDIAN_BITFIELD)
         __u16     doff:4,
              res1:4,
              cwr:1,
              ece:1,
              urg:1,
              ack:1,
              psh:1,
              rst:1,
              syn:1,
              fin:1;
    #else
    #error    "Adjust your <asm/byteorder.h> defines"
    #endif    
         __be16    window; //窗口大小
         __sum16   check; //检验和
         __be16    urg_ptr; //紧急指针
    };

    udp
    udp

    struct udphdr {
         __be16    source;
         __be16    dest;
         __be16    len; //数据报长度
         __sum16   check;
    };

    MSS (Maximum Segment Size)
    最大报文长度。是TCP协议定义的一个选项,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度
    这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes)所以一般MSS值1460

    TCP选项
    选项字段是一个选项的列表,可包含多个选项

    选项类型0,单字节选项,表示选项列表的结束
    选项类型1,单字节选项,无操作,该选项可用在两个选项之间,用于选项结构的对齐
    选项类型2,最大报文段长度选项
    选项类型3,窗口扩大因子选项
    选项类型8,时间戳选项

  • 相关阅读:
    bzoj2733 永无乡 平衡树按秩合并
    bzoj2752 高速公路 线段树
    bzoj1052 覆盖问题 二分答案 dfs
    bzoj1584 打扫卫生 dp
    bzoj1854 游戏 二分图
    bzoj3316 JC loves Mkk 二分答案 单调队列
    bzoj3643 Phi的反函数 数学 搜索
    有一种恐怖,叫大爆搜
    BZOJ3566 概率充电器 概率dp
    一些奇奇怪怪的过题思路
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709825.html
Copyright © 2011-2022 走看看