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,时间戳选项

  • 相关阅读:
    非父子组件通信
    vue中的导航守卫
    vue中做出购物车的功能
    vuex初使用(写的当然是最简单的应用啦)
    封装了一个电商放大镜移入放大的功能,适用于VUE
    moment.js插件的简单上手使用
    Vue中如何将数据传递到下一个页面(超级简单哒)
    java Math
    java Arrays
    java static
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709825.html
Copyright © 2011-2022 走看看