下面这些TCP/IP数据包是我在进行Socket及Wipcap网络编程过程中曾经用到过的数据包结构体, 这些东西平时看起来不起眼,真正用到的时候就会觉得非常有用......

以太帧头格式结构体,共14个字节:

  typedef struct ether_header {
   unsigned char ether_dhost[6];   //目的MAC地址
   unsigned char ether_shost[6];   //源MAC地址
   unsigned short ether_type;     //协议类型
  }ETHHEADER,*PETHHEADER;

IPv4报头格式结构体,共20个字节:

typedef struct ipv4_header {
unsigned char ver_ihl;          //版本 (4 bits) + 首部长度 (4 bits)
unsigned char tos;             //服务类型
unsigned short tlen;            //数据报总长度
unsigned short identification;    //标识
unsigned short flags_fo;        //标志 (3 bits) + 片偏移 (13 bits)
        unsigned char ttl;             //生存时间
unsigned char proto;           //协议
unsigned short crc;            //首部校验和
u_char ip_src[4];              //源IP地址
u_char ip_dst[4];              //目的IP地址
    }IPHEADER,*PIPHEADER;

IPv6报头格式结构体,共40个字节:

typedef struct ipv6_header {
u_char ver_tf;                //版本号(4 bit)
u_char traffic;                //优先级(8 bit)
u_short label;                //流标识(20 bit)
u_char length[2];             //报文长度(16 bit)
u_char next_header;           //下一头部(8 bit)
u_char limits;                //跳数限制(8 bit)
u_char Srcv6[16];            //源IPv6地址(128 bit)
u_char Destv6[16];           //目的IPv6地址(128 bit)
}IPv6_HEADER,*PIPv6_HEADER;

TCP报头格式结构体,共20个字节:

typedef struct tcp_header {
WORD SourPort;       //源端口号  
WORD DestPort;       //目的端口号
DWORD SeqNo;       //序号
DWORD AckNo;       //确认序号
BYTE HLen;          //首部长度(保留位)
BYTE Flag;           //标识(保留位)
WORD Window;       //窗口大小
WORD ChkSum;       //校验和
WORD UrgPtr;        //紧急指针
}TCPHEADER,*PTCPHEADER;

UDP报头格式结构体,共8个字节:

typedef struct udp_header {
u_short sport;          //源端口号
u_short dport;          //目的端口号
u_short len;            //数据报长度
u_short crc;            //校验和
}UDPHEADER,*PUDPHEADER;

TCP/IP各种数据包结构体的更多相关文章

  1. TCP/IP协议数据包文件PCAP分析器

    一.设计原理 1.PCAP文件构成 参考http://blog.csdn.net/gulu_gulu_jp/article/details/50494909 PCAP文件由一个PCAP文件头和多个PC ...

  2. 【VS开发】【DSP开发】TCP和UDP数据包结构

    TCP (Transport Control Protocol)传输控制协议: 1.TCP数据包的分组格式: A,源端口:标识源端应用进程. B, 目的端口:标识目的端应用进程. C, 序号:在SYN ...

  3. TCP/IP数据包结构具体解释

    [关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...

  4. TCP/IP数据包结构详解

    一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解网络数据包的结构,以及协议分析.如:网络监控,故障排查等…… IP包是不安全的,但是 ...

  5. 【转载】TCP数据包结构

    最近在研究TCP协议,找了点资料,感觉很经典,所以转载过来. 如果本文中图片不能观看,请链接原始地址:http://xinxiangsui2018.blog.163.com/blog/static/1 ...

  6. [转]SOCKET通信中TCP、UDP数据包大小的确定

    TCP.UDP数据包大小的确定 UDP和TCP协议利用端口号实现多项应用同时发送和接收数据.数据通过源端口发送出去,通过目标端口接收.有的网络应用只能使用预留或注册的静态端口:而另外一些网络应用则可以 ...

  7. [转]TCP、UDP数据包大小的确定

       TCP.UDP数据包大小的确定   http://blog.163.com/jianlizhao%40126/blog/static/1732511632013410101827640/   U ...

  8. TCP、UDP数据包大小的限制(UDP数据包一次发送多大为好)——数据帧的物理特性决定的,每层都有一个自己的数据头,层层递减

    1.概述 首先要看TCP/IP协议,涉及到四层:链路层,网络层,传输层,应用层. 其中以太网(Ethernet)的数据帧在链路层 IP包在网络层 TCP或UDP包在传输层 TCP或UDP中的数据(Da ...

  9. TCP、UDP数据包大小的限制

    版权声明:本文为灿哥哥http://blog.csdn.net/caoshangpa 原创文章,转载请标明出处. https://blog.csdn.net/caoshangpa/article/de ...

随机推荐

  1. 如何在Linux服务器上部署禅道

    最近换了新的项目团队,由于新团队比较年轻化,没有实行正规的项目管理,于是我自告奋勇要为团队管理出一份力,帮助团队建立敏捷化的项目管理,经过多方考究和对比后,选择了目前较受欢迎的开源项目管理软件:禅道. ...

  2. P1290-关灯

    描述 Description 宁智贤得到了一份有趣而高薪的工作.每天早晨她必须关掉她所在村庄的街灯.所有的街灯都被设置在一条直路的同一侧.宁智贤每晚到早晨5点钟都在晚会上,然后她开始关灯.开始时,她站 ...

  3. android okhttp和webview session共享

    public static OkHttpClient get(Context context){ OkHttpClient.Builder builder = new OkHttpClient.Bui ...

  4. mongodb-Configuration

    命令行和配制后文件接口为Mongodb的管理者提供了大量的控制选项.在这篇文章中提供了对于一般应用场景的最佳实践配置. mongod --config /etc/mongod.conf mongod ...

  5. 解决XP“不是有效Win32程序” 不是改Platform toolset

    背景 最近在写一个窗口程序,想在Windows XP上也能跑.先用vs 2015的App Wizard生成了一个实例窗口程序,按照网上大部分攻略,将 "Properties - Genera ...

  6. [洛谷P2186] 小Z的栈函数

    题目链接: 传送门 题目分析: 大模拟,先得存操作,然后再处理每个数-- 有一个小优化,在处理操作的时候顺便判一下最后栈里是不是有且仅有一个数,但A完了才想起来,所以就算了-- 总之就是个模拟题--没 ...

  7. 改变滚动条的原始样式: chrome 可以改变, IE只能变相关颜色,firfox好像也不好改。最好是自己写一个或是用插件

    相关作者链接地址: https://www.lyblog.net/detail/314.html 问题: 1.我在项目中遇到的问题: 在设置了::-webkit-scrollbar 后,滚动条不见了! ...

  8. 一些API

    /** * Goto the specified frame index, and pause at this index. * @param startIndex The animation wil ...

  9. 语义分割丨DeepLab系列总结「v1、v2、v3、v3+」

    花了点时间梳理了一下DeepLab系列的工作,主要关注每篇工作的背景和贡献,理清它们之间的联系,而实验和部分细节并没有过多介绍,请见谅. DeepLabv1 Semantic image segmen ...

  10. PHP使用Socket发送字节流

    例如,需要发送以下数据 struct header { int  type; // 消息类型 int  length; // 消息长度 } struct MSG_Q2R2DB_PAYRESULT { ...