问题背景:

  想要协议栈给不是接口ip的报文,ipv4回复arp request,ipv6回复 ndisc solication。

#include <stdio.h>

//调用该函数成为一个守护进程
void daemon(void)
{ return;
} /*ipv4*/
void parent(void)
{
//创建socket
socket(); while() {
recvfrom(); //正确性检查
write_log(); switch () {
default :
continue;
case :
;
} //判断是否在地址池中
if ()
continue; arp_reply(); } return;
} /*ipv6*/
void child(void)
{
//创建socket
socket(); while() {
recvfrom(); //正确性检查
write_log(); //判断协议类型,只处理ndisc ns报文
switch () {
default :
continue; //while cycle
case :
;
} if ()
continue; icmpv6_ndisc_ns();
} return;
} int main()
{
pid_t pid; daemon(); if (pid > ) {
parent();
} else if (pid == ){
child();
} else {
perror("fork error");
return -;
} return ; }

涉及技术:

  1.守护进程(apue中有通用code)

  2.raw socket抓包

  3.文件读写锁

  4.用户态回复数据包(参见arposion)

  5.写日志

 应用:

  1.可以使用这个程序导致同一局域网内pc ip地址冲突,因为是pc使用一个ip地址时候都会用arp、icmpv6做重复地址检测。进一步可以设定mac地址,从而实现局域网内的mac、ip地址绑定。

用户态处理arp、ndisc neighbour solication 报文的更多相关文章

  1. Openvswitch原理与代码分析(6):用户态流表flow table的操作

    当内核无法查找到流表项的时候,则会通过upcall来调用用户态ovs-vswtichd中的flow table. 会调用ofproto-dpif-upcall.c中的udpif_upcall_hand ...

  2. NFV、DPDK以及部分用户态协议研究

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 对我而言,这是一个新的领域,很有意思. 一.解释名词: NFV(Network Functio ...

  3. 用户态tcp协议栈调研

    一.各种用户态socket的对比 1.MTCP 简单介绍: 韩国高校的一个科研项目,在DPDK的2016年的技术开发者大会上有讲,所以intel将这个也放到了官方上,所以一般搜索DPDK的用户态的协议 ...

  4. [中英对照]Device Drivers in User Space: A Case for Network Device Driver | 用户态设备驱动: 以网卡驱动为例

    前文初步介绍了Linux用户态设备驱动,本文将介绍一个典型的案例.Again, 如对Linux用户态设备驱动程序开发感兴趣,请阅读本文,否则请飘过. Device Drivers in User Sp ...

  5. Linux 用户态与内核态的交互【转载】

    Linux 用户态与内核态的交互  在 Linux 2.4 版以后版本的内核中,几乎全部的中断过程与用户态进程的通信都是使用 netlink 套接字实现的,例如iprote2网络管理工具,它与内核的交 ...

  6. Linux用户态和内核态

    究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子: 1)例 ...

  7. Linux内核笔记--内存管理之用户态进程内存分配

    内核版本:linux-2.6.11 Linux在加载一个可执行程序的时候做了种种复杂的工作,内存分配是其中非常重要的一环,作为一个linux程序员必然会想要知道这个过程到底是怎么样的,内核源码会告诉你 ...

  8. C1000k 新思路:用户态 TCP/IP 协议栈

    现在的服务器支撑上百万个并发 TCP 连接已经不是新闻(余锋2010年的演讲,ideawu 的 iComet 开源项目,WhatsApp 做到了 2.5M).实现 C1000k 的常规做法是调整内核参 ...

  9. linux 用户态 内核态

    http://blog.chinaunix.net/uid-1829236-id-3182279.html 究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在 ...

随机推荐

  1. matlab stereo_gui立体标定

    http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples 文档中举了几个例子,有关双目的是第5个, 这个例子展示了如何使 ...

  2. waffit防火墙检测

    Waffit是一款Web应用防火墙检测工具,检测防火墙保护的站点是在渗透测试中非常重要的一步.如果没有对WAF进行配置,有时候可能存在漏洞.在渗透测试和风险评估中分析WAF也是非常重要的.通过编码攻击 ...

  3. Compute Shader

    [Compute Shader] 1.Similar to regular shaders, compute shaders are Asset files in your project, with ...

  4. easymock单元测试跟踪工具

    EasyMock can save a lot of legwork and make unit tests a lot faster to write. builder.com Java E-New ...

  5. JMeter学习(十五)JMeter测试Java(转载)

    转载自 http://www.cnblogs.com/yangxia-test 目的:对Java程序进行测试 目录 一.核心步骤 二.实例 三.JMeter Java Sampler介绍 四.自带Ja ...

  6. Tableau-安装的坑

    前言: 为了学习Tableau的教程,我下载了这个软件从官网,结果安装的时候一直报一个奇怪的错误, 由于当时没有截图,只记得错误代码Xo80076666好像是,提示安装失败,已经有另一个产品安装 在我 ...

  7. EM算法之GMM聚类

    以下为GMM聚类程序 import pandas as pd import matplotlib.pyplot as plt import numpy as np data=pd.read_csv(' ...

  8. 第二章 向量(d1)有序向量:唯一化

  9. 不包含数据和字母的Webshell

        在做php20中的challenge5时学习到了php中可代替数字和字母的符号,悲剧的是这道题没做出来,目前先整理知识点吧555555555555     情况是:很多时候在敏感地方WAF会阻 ...

  10. Matches Game

    Matches Game http://poj.org/problem?id=2234 Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...