深度剖析WinPcap之(九)——数据包的发送过程(2)
2009-10-17 00:00:00 来源:WEB开发网其中生成的数据包的函数genPacket的buf参数用来保存所生成数据包的内容,len为要求深成数据包的长度。该函数所生成的数据包没有任何实际意义,仅仅为了演示。函数源代码如下:
void genPacket(unsigned char *buf,int len)
{
int i=0;
//设置目标MAC地址为01:01:01:01:01:01
for (i=0;i<6;i++)
{
buf[i]=0x01;
}
//设置源MAC地址为02:02:02:02:02:02
for (i=6;i<12;i++)
{
buf[i]=0x02;
}
//设置协议标识为0xc0xd,无任何实际意义
buf[12]=0xc;
buf[13]=0xd;
//填充数据包的内容
for(i=14;i<len;i++)
{
buf[i]=i-14;
}
}
函数add_stamp增加时间戳,参数ptv修改前后的时间戳结构体指针,参数dus为时间增加的微秒数。函数源代码如下:
timeval add_stamp(timeval *ptv,unsigned int dus)
{
ptv->tv_usec=ptv->tv_usec+dus;
if(ptv->tv_usec>=1000000)
{
ptv->tv_sec=ptv->tv_sec+1;
ptv->tv_usec=ptv->tv_usec-1000000;
}
return *ptv;
}
用Wireshark接收测试程序所发送的数据包如图9-2所示。
图片看不清楚?请点击这里查看原图(大图)。
图9-2 Wireshark所接收的数据包
在Wireshark概要区域的Time字段中可见,接收的时间戳间隔为30微秒,精度差别为1微秒左右;协议Protocol字段显示为0x0c0d。
在Wireshark详情区域中可看到目标MAC地址为01:01:01:01:01:01,源MAC地址为02:02:02:02:02:02。
从Wireshark数据区域中可看到数据包的内容从0开始递增只到0x55(十进制85)。
出处:http://eslxf.blog.51cto.com/918801/212406
- ››深度解释攻击linux服务器的四种级别
- ››剖析java.util.concurrent锁
- ››剖析Android智能手机系统的更多功能
- ››深度分析地方社区网站的内容定位
- ››剖析Windows Azure Platform框架与组成
- ››剖析使用 ObjectOutputStream 可能引起的内存泄漏...
- ››剖析EWebEditor编辑器漏洞攻击案例
- ››剖析开源云:构建 Infrastructure as a Service 块...
- ››深度剖析 Android 和 iPhone OS
- ››深度分析:HTML5能否成为Flash终结者
- ››深度挖掘 更多Windows 7快捷模式
- ››深度挖掘 Windows 7快捷模式
更多精彩
赞助商链接