//NTP协议
typedef struct _NTP_HEADER
{
uint8_t _flags;//Flags 0xdb
uint8_t _pcs;//Peer Clock Stratum
uint8_t _ppt;//Peer Polling Interval
uint8_t _pcp;//Peer Clock Precision
uint32_t _rdy;//Root Delay
uint32_t _rdn;//Root Dispersion
uint32_t _rid;//Reference ID
uint64_t _ret;//Reference Timestamp
uint64_t _ort;//Origin Timestamp
uint64_t _rct;//Receive Timestamp
uint64_t _trt;//Transmit Timestamp
}ntp_header,*pntp_header; //MAC协议
typedef struct _MAC_HEADER
{
unsigned char dstmac[];//目的MAC
unsigned char srcmac[];//源MAC
unsigned short type;//协议
}mac_header,*pmac_header; //ARP协议
typedef struct _ARP_HEADER
{
unsigned short hardware;//硬件类型
unsigned short protocol;//协议类型
unsigned char hardwarelen;//硬件地址长度(6)
unsigned char protocollen;//协议地址长度(4)
unsigned short operate;//操作类型(1-ARP请求 2-ARP应答 3-RARP请求 4-RARP应答)
unsigned char sendmac[];//发送端MAC地址
in_addr sendip;//发送端IP地址
unsigned char dstmac[];//目的端MAC地址
in_addr dstip;//目的端IP地址
}arp_header,*parp_header; //RARP协议
typedef struct _RARP_HEADER
{
unsigned short hardware;//硬件类型
unsigned short protocol;//协议类型
unsigned char hardwarelen;//硬件地址长度(6)
unsigned char protocollen;//协议地址长度(4)
unsigned short operate;//操作类型(1-ARP请求 2-ARP应答 3-RARP请求 4-RARP应答)
unsigned char sendmac[];//发送端MAC地址
unsigned char sendip[];//发送端IP地址
unsigned char dstmac[];//目的端MAC地址
unsigned char dstip[];//目的端IP地址
}rarp_header,prarp_header; //IP协议
typedef struct _IP_HEADER
{
unsigned char headerlen:; //首部长度
unsigned char version:; //版本
unsigned char tos; //服务类型
unsigned short total_len; //总长度
unsigned short id; //标志
unsigned short frag_off; //分片偏移
unsigned char ttl; //生存时间
unsigned char protocol; //协议
unsigned short chk_sum; //检验和
struct in_addr srcaddr; //源IP地址
struct in_addr dstaddr; //目的IP地址
}ip_header,*pip_header; //TCP协议
typedef struct _TCP_HEADER
{
unsigned short srcport;//源端口
unsigned short dstport;//目的端口
unsigned int seq_no;//序列号
unsigned int ack_no;//确认号
unsigned char reserved_1:;//保留位
unsigned char headerlen:;//协议头长度
unsigned char flag:;//6位标志
unsigned char reserved_2:;//保留位
unsigned short wnd_size;//窗口大小
unsigned short chk_sum;//校验和
unsigned short urgt_p;//紧急指针
}tcp_header,*ptcp_header; //UDP协议
typedef struct _UDP_HEADER
{
unsigned short srcport;//源端口号
unsigned short dstport;//目的端口号
unsigned short headerlen;//UDP长度
unsigned short chk_sum;//校验和
}udp_header,*pudp_header; //ICMP协议
typedef struct _ICMP_HEADER
{
unsigned char type;//类型
unsigned char code;//代码
unsigned short chk_sum;//校验和
}icmp_header,*picmp_header; //IGMP
typedef struct _IGMP_HEADER
{
unsigned char type:;//类型
unsigned char version:;//版本
unsigned char reserved;//未用
unsigned short chk_sum;//校验和
in_addr addr;//D类IP地址
}igmp_header,*pigmp_header;

c++ 常见网络协议头的更多相关文章

  1. 简单了解下OSI七层模型的作用以及常见网络协议含义和所用端口

    OSI七层模型及每层的作用 包括:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层物理层用来建立.维护.断开物理连接数据链路层建立逻辑链接.进行硬件地址寻址.差错校验等功能网络层进行逻辑地址 ...

  2. PHP网络协议相关考点

    HTTP状态码 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. HTTP状态码主要有5种,代表5种不同类型的响应: 1xx:信息性状态码,代表接 ...

  3. [国嵌攻略][068][tftp网络协议实现]

    IP协议结构 UDP协议结构 TFTP协议结构 TFTP端口 读写请求端口: 69 其他请求端口:1024~65535 主程序 /*********************************** ...

  4. php面试专题---10、网络协议考点

    php面试专题---10.网络协议考点 一.总结 一句话总结: 网络的考点其实就是这些:常见状态码,常见协议,osi七层模型,http和https 1.HTTP/1.1中,状态码200.301.304 ...

  5. linux网络协议

    网络协议 本章节主要介绍linxu网络模型.以及常用的网络协议分析以太网协议.IP协议.TCP协议.UDP协议 一.网络模型 TCP/IP分层模型的四个协议层分别完成以下的功能: 第一层 网络接口层 ...

  6. iOS网络协议 HTTP/TCP/IP浅析

    一.TCP/IP协议       话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电 ...

  7. linux 网络协议分析---3

    本章节主要介绍linxu网络模型.以及常用的网络协议分析以太网协议.IP协议.TCP协议.UDP协议 一.网络模型 TCP/IP分层模型的四个协议层分别完成以下的功能: 第一层 网络接口层 网络接口层 ...

  8. Java 面试知识点解析(五)——网络协议篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  9. HTTP网络协议与手写Web服务容器

    Http协议 1.深入概念 Http:HyperText Transfer Protocol,即是超文本传输协议. 2.浅出概念(使用浏览器访问服务器端网页时需要遵循的一系列规则) Http:将各种不 ...

随机推荐

  1. 006_Mac下sublime text 的“package control”安装,sublimepackage

    Mac下sublime text 的“package control”安装,sublimepackage 小伙伴们好,我根据昨晚的经历写一个小总结:关于“Mac下sublime text 的“pack ...

  2. 下一代Android打包工具,100个渠道包只需要10秒钟 https://github.com/mcxiaoke

    https://github.com/mcxiaoke/packer-ng-plugin https://github.com/Meituan-Dianping/walle https://githu ...

  3. java基础43 IO流技术(输入字节流/缓冲输入字节流)

    通过File对象可以读取文件或者文件夹的属性数据,如果要读取文件的内容数据,那么我们就要使用IO技术. 一.输入字节流 输入字节流的体系:  -------| InputStream:所有输入字节流的 ...

  4. 配置vuejs加载模拟数据

    [个人笔记,非技术博客] 1.使用前确保安装axios插件,vuejs官方推荐,当然使用其他插件也可以 2.配置dev-server.js var router = express.Router(); ...

  5. OBJECT_ID()的使用方法

    数据库中每个对像都有一个唯一的ID值,用Object_name(id)可以根据ID值得到对像的名称,object_id(name)可以根据对像名称得到对象的ID object_id()只能返回用户创建 ...

  6. JavaSE简单实现多线程聊天

    1.1 主程序入口 在主程序入口处,通过设置MyWindow的第一个参数,如果为true则为服务器,如果为false,则为客户端,当然也可以设置第二个参数,区分客户端和服务器的窗口标题. public ...

  7. 20165203 实验三 敏捷开发与XP实践

    20165203 实验三 敏捷开发与XP实践 任务一: 1.实验要求 实验三 敏捷开发与XP实践 (http://www.cnblogs.com/rocedu/p/4795776.html), Ecl ...

  8. 【读书笔记】Android的Ashmem机制学习

    Ashmem是安卓在linux基础上添加的驱动模块,就是说安卓有linux没有的功能. Ashmem模块在内核层面上实现,在运行时库和应用程序框架层提供了访问接口.在运行时库层提供的是C++接口,在应 ...

  9. ssm使用Ajax的formData进行异步图片上传返回图片路径,并限制格式和大小

    之前整理过SSM的文件上传,这次直接用代码了. 前台页面和js //form表单 <form id= "uploadForm" enctype="multipart ...

  10. day6 subprocess模块、logging模块

        logging模块 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储 ...