下面这些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. layui icon样式1到7

    1: 2: 3: 4: 5: 6: 7:

  2. OPENGL3_基本图元

    类型 说明 GL_POINTS 单个顶点集 GL_LINES 多组双顶点线段 GL_POLYGON 单个简单填充凸多边形 GL_TRAINGLES 多组独立填充三角形 GL_QUADS 多组独立填充四 ...

  3. 51nod1093(推公式&找規律)

    題目鏈接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1093 題意:中文題誒- 思路:xjb 一開始死活想不出怎麼將一 ...

  4. echarts相关属性设置(2)--折线图和柱状图的结合使用

    type:bar和line的组合 option = { { tooltip: { trigger: 'axis', axisPointer: { // type: 'shadow' }, // lab ...

  5. IDEA 快捷键MacOS

    Alt + Enter 导入包,自动修正 Command + N 查找类 Command + Shift + N查找文件 Command + Alt + L格式化代码 Command + Alt + ...

  6. VLAN-4-在路由器上配置Trunk

    VLAN Trunk技术可以用在路由器和主机上,也可以用在交换机上.路由器不支持DTP,所以工程师必须手动配置. 路由器Trunk需要使用子接口(在一个接口中实现多个vlan间的路由和通信),每个子接 ...

  7. jQuery取得/设置select的值

    本来以为jQuery("#select1").val();是取得选中的值, 那么jQuery("#select1").text();就是取得的文本. 这是不正确 ...

  8. pc端_移动端_H5_ QQ在线客服链接代码

    PC端:QQ在线客服链接代码 <a href="tencent://message/?uin=1239300678&Site=sc.chinaz.com&Menu=ye ...

  9. CF1079D Barcelonian Distance

    思路: 模拟. 实现: #include <bits/stdc++.h> using namespace std; ; double dis(double x1, double y1, d ...

  10. Actionbar Demo

    源码下载:http://download.csdn.net/detail/bx276626237/8874119