下面这些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. laravel 数据库连接Mysql

    找到 config/database.php 'mysql' => [ 'driver' => 'mysql', //数据库的类型 'host' => env('DB_HOST', ...

  2. 集中化管理平台 — Ansible 详解

    # Ansible 简介 Ansible 类似于Saltstack,是一种集成IT系统的配置管理.应用部署.执行特定任务的开源平台.Ansible基于Python语言实现,由Paramiko和PyYA ...

  3. iOS中UIWebView使用JS交互

    iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html & ...

  4. C#字符串判断

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  5. UVa12298(生成函数的简单应用+FFT)

    I have a set of super poker cards, consisting of an infinite number of cards. For each positive compo ...

  6. 12.Maps

    1       Maps 1.1  Map声明和访问 maps中的元素是key-value对儿,key与value之间使用冒号(:)分割.创建一个空value的map,使用[:].默认情况下,map的 ...

  7. 一个发散动画的菜单控件(主要记录控件x,y坐标的运动状况)

    private void showCloseAnim() { int size = viewList.size(); if (size % 2 == 0) { //是偶数 for (int i = 0 ...

  8. Bingding模型

    public abstract class Binding : IDefaultCommunicationTimeouts public virtual IChannelListener<TCh ...

  9. 代码中看见一共8个变量参数{SEO,0,0,0,0,0,0,0} 解读!{Top,0,0,0,0,0,0,Top}{Nav,0,0,0,0,0,0,Nav}

    代码中看见{SEO,0,0,0,0,0,0,0}{Top,0,0,0,0,0,0,Top}{Nav,0,0,0,0,0,0,Nav}解读! 举个例子: {GetNew,977,0,23,500,0,0 ...

  10. 极简的css浮动窗口

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta http ...