c++ 常见网络协议头
//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++ 常见网络协议头的更多相关文章
- 简单了解下OSI七层模型的作用以及常见网络协议含义和所用端口
OSI七层模型及每层的作用 包括:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层物理层用来建立.维护.断开物理连接数据链路层建立逻辑链接.进行硬件地址寻址.差错校验等功能网络层进行逻辑地址 ...
- PHP网络协议相关考点
HTTP状态码 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. HTTP状态码主要有5种,代表5种不同类型的响应: 1xx:信息性状态码,代表接 ...
- [国嵌攻略][068][tftp网络协议实现]
IP协议结构 UDP协议结构 TFTP协议结构 TFTP端口 读写请求端口: 69 其他请求端口:1024~65535 主程序 /*********************************** ...
- php面试专题---10、网络协议考点
php面试专题---10.网络协议考点 一.总结 一句话总结: 网络的考点其实就是这些:常见状态码,常见协议,osi七层模型,http和https 1.HTTP/1.1中,状态码200.301.304 ...
- linux网络协议
网络协议 本章节主要介绍linxu网络模型.以及常用的网络协议分析以太网协议.IP协议.TCP协议.UDP协议 一.网络模型 TCP/IP分层模型的四个协议层分别完成以下的功能: 第一层 网络接口层 ...
- iOS网络协议 HTTP/TCP/IP浅析
一.TCP/IP协议 话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电 ...
- linux 网络协议分析---3
本章节主要介绍linxu网络模型.以及常用的网络协议分析以太网协议.IP协议.TCP协议.UDP协议 一.网络模型 TCP/IP分层模型的四个协议层分别完成以下的功能: 第一层 网络接口层 网络接口层 ...
- Java 面试知识点解析(五)——网络协议篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- HTTP网络协议与手写Web服务容器
Http协议 1.深入概念 Http:HyperText Transfer Protocol,即是超文本传输协议. 2.浅出概念(使用浏览器访问服务器端网页时需要遵循的一系列规则) Http:将各种不 ...
随机推荐
- php环境搭建 (window环境下 eclipse+Wampserver)
看了好多的环境搭建感觉好复杂呀,自己搞了一下简单的可以用了 php的手册 http://www.php.net/manual/zh/ 一,下载 1,下载eclipse http://www.ecl ...
- 关于Unity启动时间过长(启动黑屏时间长)的问题!!! 牛逼... 思路不错...
http://blog.csdn.net/u012169685/article/details/52068809
- [USACO16OPEN]248
传送门啦 分析: 一个裸的区间dp,我们只需要注意合并的时候并不像2048那样加倍,每次都加1就好了 #include <iostream> #include <cstring> ...
- jquery 绑定,mvc和webform的三种方式
asp.net里的绑定方式,on的绑定方式无效 $('#SelCommandType').bind('click', function () { }); mvc里的绑定方式 $('#DownList' ...
- select into的缺点
当使用到select * into 表A from 表 B时可以复制表的结构和数据,但是千万不要忘了给新表A添加主键和索引, 因为在使用select into 时不会复制索引和主键,因此,当我 ...
- 20165203迭代和JDB测试
1.使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 public class C { public static void main(Strin ...
- win7下scheme环境配置
运行lisp方言--scheme,在windows下,用eclipse. 1.eclipse装好 2.eclipse安装插件scheme48 development took, http://www. ...
- element-ui 2.7.2版本使用 表格展开行 功能遇到的奇葩问题?
在使用 element-ui 2.7.2版本的时候报下面的错误: [Vue warn]: Error in callback for watcher "data": "E ...
- MFC+WinPcap编写一个嗅探器之七(协议)
这一节是本系列教程的结尾了,内容也比较简单,主要是对网络协议进行分析,其实学过计算机网络的同学完全可以略过 在整个项目中需要有一个头文件存放各层协议的头部定义,我把它们放在了head.h中,这个头文件 ...
- C语言:凯撒密码的实现
凯撒密码的实现(10分)题目内容: 凯撒密码(caeser)是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令.它将字母表中的字母移动一定位置而实现加密. ...