//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. linux文件管理 -> vim编辑总结

    vi和vim命令是linux中强大的文本编辑器, 由于Linux系统一切皆文件,而配置一个服务就是在修改其配置文件的参数.vim编辑器是运维工程师必须掌握的一个工具, 没有它很多工作都无法完成.vim ...

  2. JSP中page,request,session,application四个域对象区别

    page page指当前页面.只在一个jsp页面里有效 . page里的变量没法从index.jsp传递到test.jsp,只要页面跳转了,它们就不见了. pageContext 如果把变量放到pag ...

  3. Mac ssh

    mac的终端默认在打开一个新的tab/window的时候需要重新输入ssh的密码, 很不方便.本文完成在mac中设置,实现secureCRT/xshell里的克隆会话功能, 即新开一个terminal ...

  4. 关闭linux退格键和vi发出的嘟嘟声

    以root用户登录,然后请安下面方法进行操作: 在命令行下执行:echo "rmmod pcspkr" >> /etc/rc.d/rc.local

  5. (四)MyBatis关系映射

    第一节:一对一关系实现 需要实现一对一的关系,首先我们有两张表,t-addree和t_student. CREATE TABLE `t_address` ( `id` ) NOT NULL AUTO_ ...

  6. 二、 sql*plus常用命令

    一.sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1).sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户 ...

  7. Ionic Js二十:选项卡栏操作

    ion-tabs ion-tabs 是有一组页面选项卡组成的选项卡栏.可以通过点击选项来切换页面. 对于 iOS,它会出现在屏幕的底部,Android会出现在屏幕的顶部(导航栏下面). 用法 < ...

  8. Scala入门2(特质与叠加在一起的特质)

    一.介绍 参考http://luchunli.blog.51cto.com/2368057/1705025 我们知道,如果几个类有某些共通的方法或者字段,那么从它们多重继承时,就会出现麻烦.所以Jav ...

  9. shell 变量中间有空格 如何传入整个变量

    parmfile='abc  123' RunProgram programname "${parmfile}"  -->传入abc 123 RunProgram progr ...

  10. CSS 布局:40个教程、技巧、例子和最佳实践

    前言: 布局是WEB开发一个重要的课题,进入XHTML/CSS后,使用TABLE布局的方式逐渐淡出,CSS布局以众多优点成为主流,本文将介绍40个基于CSS的web布局的资源和教程.文章的出处在htt ...