精华内容
下载资源
问答
  • android双网卡,指定发包网卡。

    千次阅读 2019-07-31 14:44:58
    android 5.1,双网卡,一个为有线,名为eth0,一个为wifi ,名为wlan0。 SO_BINDTODEVICE绑定发出包的网卡为eth0 测试包的资源 ...1、wifi不开,只接有线,路由表中,只有绑定的网卡。 发送的目标为同网段,直接使用ARP...

    android 5.1,双网卡,一个为有线,名为eth0,一个为wifi ,名为wlan0。
    SO_BINDTODEVICE绑定发出包的网卡为eth0
    测试包的资源
    https://download.csdn.net/download/ssj901217/11457266

    1、wifi不开,只接有线,路由表中,只有绑定的网卡。

    发送的目标为同网段,直接使用ARP查询目标IP对应的MAC地址。然后发送给目标(DST MAC地址为目标的mac, DST IP为目标IP)

    发送目标为不同网段,直接把包发给GW。(DST MAC地址为GW的mac, DST IP为目标IP)

    例为绑定eth0,eth0 mac 0e:7e:ae:ad:62:62:

    shell@su_ip:/ $ busybox ifconfig
    eth0 Link encap:Ethernet HWaddr 0E:7E:AE:AD:62:62
    inet addr:10.106.41.48 Bcast:10.106.41.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1900 errors:0 dropped:0 overruns:0 frame:0
    TX packets:195 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:216666 (211.5 KiB) TX bytes:25388 (24.7 KiB)
    Interrupt:88
    
    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:37 errors:0 dropped:0 overruns:0 frame:0
    TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:1580 (1.5 KiB) TX bytes:1580 (1.5 KiB)
    
    
    22|shell@su_ip:/ $ busybox route
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    10.106.41.0 * 255.255.255.0 U 0 0 0 eth0
    

    测试包见nowifi.pcap

    2、打开wifi,此时路由表中,有2个网卡,绑定的网卡不是默认路由(wifi会优先)

    发送的目标为同网段,直接使用ARP查询目标IP对应的MAC地址。然后发送给目标

    发送目标为不同网段,直接使用ARP查询目标IP对应的MAC地址。因为目标不在同一vlan下,所以ARP广播不到,发送会失败。

    例为绑定eth0,eth0 mac 0e:7e:ae:ad:62:62:

    shell@su_ip:/ # busybox ifconfig
    eth0 Link encap:Ethernet HWaddr 0E:7E:AE:AD:62:62
    inet addr:10.106.41.48 Bcast:10.106.41.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:5087 errors:0 dropped:0 overruns:0 frame:0
    TX packets:234 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:468784 (457.7 KiB) TX bytes:27906 (27.2 KiB)
    Interrupt:88
    
    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:88 errors:0 dropped:0 overruns:0 frame:0
    TX packets:88 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:3412 (3.3 KiB) TX bytes:3412 (3.3 KiB)
    
    wlan0 Link encap:Ethernet HWaddr 28:ED:E0:D0:94:BF
    inet addr:192.168.0.103 Bcast:192.168.0.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:6 errors:0 dropped:0 overruns:0 frame:0
    TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:1452 (1.4 KiB) TX bytes:1287 (1.2 KiB)
    
    shell@su_ip:/ # busybox route
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    10.106.41.0 * 255.255.255.0 U 0 0 0 eth0
    192.168.0.0 * 255.255.255.0 U 0 0 0 wlan0
    

    测试包见withwifi1.pcap

    3、在2的基础上,关闭wifi。结果同2,

    root@su_ip:/ # busybox ifconfig
    eth0      Link encap:Ethernet  HWaddr 0E:7E:AE:AD:62:62
              inet addr:10.106.41.48  Bcast:10.106.41.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:12057 errors:0 dropped:0 overruns:0 frame:0
              TX packets:513 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:1012381 (988.6 KiB)  TX bytes:49194 (48.0 KiB)
              Interrupt:88
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:219 errors:0 dropped:0 overruns:0 frame:0
              TX packets:219 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:7824 (7.6 KiB)  TX bytes:7824 (7.6 KiB)
    
    root@su_ip:/ # busybox route
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    10.106.41.0     *               255.255.255.0   U     0      0        0 eth0
    

    测试包见wificlose.pcap

    解决不同网段的ARP问题:

    对eth0增加route
    root@su_ip:/ #ip route add  dev eth0 via 10.106.41.1
    root@su_ip:/ # ip route show table main
    default via 10.106.41.1 dev eth0
    10.106.41.0/24 dev eth0  proto kernel  scope link  src 10.106.41.48
    192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.103
    

    您的支持是我持续创作的动力!!!
    您的支持是我持续创作的动力!!!

    展开全文
  • 网络发包

    千次阅读 2013-01-07 09:43:31
     需要注意的是:本文介绍的流控只能控制发包动作,不能控制收包动作,同时,它直接对物理接口生效,如果控制了物理的eth0,那么逻辑网卡(比如 eth0:1 )也会受到影响,反之,如果您在逻辑网卡上做控制,该控制可能...
    tc/netem 模拟复杂网络环境下的传输性能

    一、
    netem 与 tc

        
    netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用 Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian等等。
        
    tc 是 Linux 系统中的一个工具,全名为traffic control(流量控制)。tc 可以用来控制 netem 的工作模式,也就是说,如果想使用 netem ,需要至少两个条件,一个是内核中的 netem 功能被包含,另一个是要有 tc 。
        需要注意的是:本文介绍的流控只能控制发包动作,不能控制收包动作,同时,它直接对物理接口生效,如果控制了物理的eth0,那么逻辑网卡(比如
    eth0:1)也会受到影响,反之,如果您在逻辑网卡上做控制,该控制可能是无效的。(注:虚拟机中的多个网卡可以在虚拟机中视为多个物理网卡)。

    二、模拟延迟传输
    # tc  qdisc  add  dev  eth0  root  netem  delay  100ms
    该命令将 eth0 网卡的传输设置为延迟100毫秒发送。
     
    更真实的情况下,延迟值不会这么精确,会有一定的波动,我们可以用下面的情况来模拟出带有波动性的延迟值:
    # tc  qdisc  add  dev  eth0  root  netem  delay  100ms  10ms
    该命令将 eth0 网卡的传输设置为延迟 100ms ± 10ms (90 ~ 110 ms 之间的任意值)发送。
     
    还可以更进一步加强这种波动的随机性:
    # tc  qdisc  add  dev  eth0  root  netem  delay  100ms  10ms  30%
    该命令将 eth0 网卡的传输设置为 100ms ,同时,大约有 30% 的包会延迟 ± 10ms 发送。

    三、模拟网络丢包:
    # tc  qdisc  add  dev  eth0  root  netem  loss  1%
    该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包。
    也可以设置丢包的成功率:
    # tc  qdisc  add  dev  eth0  root  netem  loss  1%  30%
    该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包,成功率为 30% 。


    四、模拟包重复:
    # tc  qdisc  add  dev  eth0  root  netem  duplicate 1%
    该命令将 eth0 网卡的传输设置为随机产生 1% 的重复数据包 。 
     
    五、模拟数据包损坏:
    # tc  qdisc  add  dev  eth0  root  netem  corrupt  0.2% 
    该命令将 eth0 网卡的传输设置为随机产生 0.2% 的损坏的数据包 。 (内核版本需在2.6.16以上)
     
    六、模拟数据包乱序:
    # tc  qdisc  change  dev  eth0  root  netem  delay  10ms   reorder  25%  50%
    该命令将 eth0 网卡的传输设置为:有 25% 的数据包(50%相关)会被立即发送,其他的延迟 10 秒。  
    新版本中,如下命令也会在一定程度上打乱发包的次序:
    # tc  qdisc  add  dev  eth0  root  netem  delay  100ms  10ms
     

    展开全文
  • 网络发包工具.rar

    2020-12-08 15:07:40
    一个网络发包的工具,界面简单实用,非常适合网络学习或测试使用,先安装winpcap,一个网络发包的工具,界面简单实用,非常适合网络学习或测试使用,先安装winpcap
  • 网络发包源代码

    2014-11-11 11:56:25
    一个款网络发包的源代码,直接使用,可以学习如何发送数据包
  • 网络发包工具 anysend

    热门讨论 2008-12-22 14:58:24
    一个网络发包的工具,界面简单实用,非常适合网络学习或测试使用
  • 1、选择网卡发包(应用scapy):plface=conf.route.route("××.××.××.××")[0]#××.××.××.××为对应网卡网络中存在设备的IP地址。不能是需要发送数据包的网卡的IP地址(会报“result too large”)pkt=conf....

    当一台计算机上有多个网卡时,需要选择对应IP地址的网卡进行发送数据包或者接受数据包。

    1、选择网卡发包(应用scapy):

    plface=conf.route.route("××.××.××.××")[0]

    #××.××.××.××为对应网卡网络中存在设备的IP地址。不能是需要发送数据包的网卡的IP地址(会报“result too large”)

    pkt=conf.L2socket(plface)

    pack_ip,pack_udp,pack_ether=self.udp_pack()

    t= str(pack_ether/pack_ip/pack_udp/udp_packdata)

    udp_pack = Ether(t)

    pkt.send(udp_pack)

    2、选择网卡进行包的接收

    1)如下方法,只能获得一个网卡的ip地址(选择哪个网卡,优先级未知)

    socket.getaddrinfo(socket.gethostname(),None)[-1][4][0]

    2)如下方法,可根据ip地址确定网卡:

    HOST = socket.gethostbyname(socket.gethostname())

    s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_IP)

    s.bind((HOST,0))

    host可以直接用网卡ip地址代替,这样就可以选择网卡进行包的接受了

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

    展开全文
  • Linux网络发包流程

    2020-08-25 17:57:29
    网络发包流程。 sys_write() file->f_op->write()(sock_writev)(注0) sock_writev() sock_sendmsg() sock->ops->sendmsg() (inet_sendmsg) structsock *sk = sock->sk; ...

    网络发包流程。

    sys_write()

           file->f_op->write()(sock_writev)(注0)

              sock_writev()

                sock_sendmsg()

                sock->ops->sendmsg()

                            (inet_sendmsg)

                  structsock *sk = sock->sk;

                       sk->sk_prot->sendmsg();  (注1)

                         udp_sendmsg()

                           udp_push_pending_frames()

                                ip_push_pending_frames()

                                    dst_output()

                                        ip_output()

                                             /ip_mc_output()

                                           ip_finish_output()

                                                dev_queue_xmit()

     

    注0:

    sock_map_fd()

      file->f_op =SOCK_INODE(sock)->i_fop =

                 &socket_file_ops

    注1:

           struct proto_opsinet_stream_ops = {

                  …

                  .sendmsg =      inet_sendmsg

                  …

    }

           struct proto udp_prot ={

                         …

                  .name =         "UDP",

                  .sendmsg =      udp_sendmsg,

                  …

                  }

    网络收包简单总结:

     首先网卡驱动申请一个著名的数据结构sk_buffer,根据数据包中的网络类型 type = skb->protocol(L3层 ipv4 or ipv6 ..) ,去调用提前注册在内核中的ipv4 or ipv6 ..协议处理函数,比如调用ip_rcv(),然后进一步解包,比如根据目的MAC地址和目的IP地址确定是否转发包,然后从包中解出是TCP or UDP,同样调用内核中注册好的回调函数处理,然后根据网络包的信息(hash一下,怎么hash看源码:) )对接上收包之前sys_recvfrom()建立的sock,最后进一步唤醒等待收包的进程。

    网络发包简单总结:

    发包相对容易理解一些,比如首先调用sys_sendto(),比如在L4层确定TCP or UDP,同样调用L4层注册好的函数,L3层根据路由表子系统确定IP地址,L2层根据邻居子系统确定MAC地址,然后传给网卡驱动发包。

    当然,网络子系统非常复杂,不过这些对了解网络流程,对排查网络故障会起很大的作用。

    文章只是一个引子,更深的学习,一定要深入代码细节,等到代码都看明白的时候,你将进入另一重世界。不说了,我去修炼了。

    展开全文
  • 自己写的发包器,主要是用于开发和测试。开发web端,或者要调用api的情况
  • 1、选择网卡发包(应用scapy):plface=conf.route.route("××.××.××.××")[0]#××.××.××.××为对应网卡网络中存在设备的IP地址。不能是需要发送数据包的网卡的IP地址(会报“result too large”)pkt=conf....
  • 1、选择网卡发包(应用scapy):plface=conf.route.route("××.××.××.××")[0]#××.××.××.××为对应网卡网络中存在设备的IP地址。不能是需要发送数据包的网卡的IP地址(会报“result too large”)pkt=conf....
  • 网络发包工具 anysend.zip

    热门讨论 2013-04-15 22:21:01
    网络发包工具 anysend.zip
  • 网络抓包和发包工具

    2019-04-29 12:08:22
    网络调试过程中,我们往往需要对通信过程中的数据进行分析,这个时候网络抓包和发包数据就显得格外重要了@~@
  • socket绑定指定网卡发包

    千次阅读 2019-11-07 21:03:23
    socket绑定制定网卡发包SO_BINDTODEVICE 网络编程中有时明明用eth0的地址来bind一个udp套接口, 可是发出去的包却是从eht1走的, 在网上找到这么一段话解释该问题: 在多 IP/网卡主机上,UDP 包/协议会自动根据路由...
  • 背景总结通过路由表来达到在指定网卡上发包的效果。解决方案更改路由表使用python的pysnmp库更方便这里给出的是windows自带的dos命令route change 255.255.255.255 mask 255.255.255.255 192.168.1.101 metric 230 ...
  • linux网络发包性能优化

    千次阅读 2016-04-01 00:00:08
    网络发包性能对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性能的优化则可基于这 3 条路径来考虑。
  • 1、选择网卡发包(应用scapy): plface=conf.route.route(××.××.××.××)[0] #××.××.××.××为对应网卡网络中存在设备的IP地址。不能是需要发送数据包的网卡的IP地址(会报“result too large”) pkt...
  • python scapy 网卡发包

    2018-12-10 10:48:00
    1 from scapy.all import * 2 3 pkt = Ether(src='11:22:33:44:55:77', dst='11:22:33:44:55:66')/ARP(op="who-has", pdst='1.1.1.200') 4 sendp(pkt, inter=1, count=5, iface="enp7s0f1") ...
  • Nemesis项目是为了开发一个UNIX/Linux系统是基于命令行,方便人们使用的IP栈 它可以自定义数据包、插入数据包、进行协议攻击等。是一个很好的测试防火墙、 路由器和其他网络设备的工具。支持 ARP, DNS, ETHERNET, ...
  • 一个好用的网络发包工具
  • xcap一个好用的网络发包工具
  • 用于TCP/IP网络实验进行发包收包的模拟工具
  • 传统网络节点发包概率分布方法存在分布密度不均匀的问题,为了解决这一问题,基于微积分算子研究了一种新的网络节点发包概率分布方法。该方法从计算机网络节点发包的原因出发,以网络节点的运动情况为基础,进行基于...
  • nemesis-1.4 网络发包工具

    热门讨论 2009-12-24 23:57:51
    nemesis-1.4 网络发包工具 能够产生ip,arp,icmp,rip,tcp,udp,ospf报文
  • 百度SEO发包程序2.0 因为软件已经被百度官方屏蔽了 所以优化排名功能已经失效 介意者勿买 只适合seo爱好者学习研究之用
  • linux网络调试发包抓包工具

    千次阅读 2019-05-06 19:27:00
    1、发包工具 1.1 sendip 1.2 tcpreply 2、抓包工具 2.1、tcpdump 2.2 tcpflow 3、速率测试工具 4、加密工具 4.1 tcpcryptd 5.linux网络编程 5.1、tcp 5.2、udp 1、发包工具 1.1 sendip Sendip是一个...
  • 1 #include 2 3 #include 4 #include 5 6 #include 7 #include 8 9 static pcap_t*gfp;10 11 static PyObject*list_device(PyObject*self, PyObject*args)12 {13 pcap_if_t*alldevs;14 pcap_if_t*d;...
  • xcap是一个免费的网络发包工具,可以构造和发送常用的网络报文,如arp,ip,icmp,udp等。这个是最新的中文版,支持构造报文和发送报文。主要功能:构造报文支持构造常见的以太网报文,包括arp、rarp、ipv4、ipv6、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,525
精华内容 610
关键字:

发包网