tunctl添加虚拟网卡TUN/TAP与brctl添加网桥

2024-06-20 20:08

本文主要是介绍tunctl添加虚拟网卡TUN/TAP与brctl添加网桥,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 Linux添加虚拟网卡三种方法

方法1: ifconfig命令创建\删除虚拟网卡

ifconfig eth0:0 192.168.1.10 netmask 255.255.255.0 up
删除虚拟网卡:
ifconfig eth0:0 down
重启服务器或者网络后,虚拟网卡就失效. 注意:添加的虚拟网卡和原网卡物理地址是一样的。

方法2: 修改网卡配置文件

在ubuntu下,修改网卡的配置文件/etc/network/interfaces:
cat /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
auto eth0:1
iface eth0:1 inet staticaddress 192.168.11.1netmask 255.255.255.0gateway 192.168.11.1
auto eth0:2
iface eth0:2 inet staticaddress 192.168.12.1netmask 255.255.255.0gateway 192.168.12.1
保存后,重新加载配置文件才会生效,使用如下命令重启网卡:
service networking restart
优点: 重启服务器或者网卡配置不会丢失。

RHEL系统中,网卡IP配置的文件在/etc/sysconfig/network-scripts/下,文件分别为ehtx或ethx:x,执行命令如下:
#cd /etc/sysconfig/network-scripts/  
#cp ifcfg-eth0 ifcfg-eth0:1  
#vi ifcfg-eth0:1  
DEVICE=eth0  
BOOTPROTO=none  
HWADDR=00:19:D1:24:2A:EC  
ONBOOT=yes  
DHCP_HOSTNAME=zhongqg.localdomain  
IPADDR=192.168.1.55  
NETMASK=255.255.252.0  
GATEWAY=192.168.0.1  
TYPE=Ethernet  
USERCTL=no  
IPV6INIT=no  
PEERDNS=yes  
    修改其中的IPADDR部分为192.168.1.57,然后保存退出并启动该配置文件!
#ifup eth0:1  

方法3:创建tap

前两种方法都有一个特点,创建的网卡可有不同的ip地址,但是Mac地址相同,无法用来创建虚拟机。
使用命令tunctl添加虚拟网卡tap。

2 tunctl安装与使用

2.1 安装apt-get install uml-utilities

root@host:~# tunctl
The program 'tunctl' is currently not installed. You can install it by typing:
apt-get install uml-utilities
root@host:~# apt-get install uml-utilities
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:user-mode-linux
The following NEW packages will be installed:uml-utilities
0 upgraded, 1 newly installed, 0 to remove and 105 not upgraded.
Need to get 61.9 kB of archives.
After this operation, 267 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty/universe uml-utilities amd64 20070815-1.3ubuntu1 [61.9 kB]
Fetched 61.9 kB in 2s (27.7 kB/s)
Selecting previously unselected package uml-utilities.
(Reading database ... 60223 files and directories currently installed.)
Preparing to unpack .../uml-utilities_20070815-1.3ubuntu1_amd64.deb ...
Unpacking uml-utilities (20070815-1.3ubuntu1) ...
Processing triggers for ureadahead (0.100.0-16) ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up uml-utilities (20070815-1.3ubuntu1) ...* Starting User-mode networking switch uml_switch                                                                         [ OK ]
Processing triggers for ureadahead (0.100.0-16) ...

2.2 使用tunctl

NAME
       tunctl — create and manage persistent TUN/TAP interfaces
SYNOPSIS
       tunctl [-f tun-clone-device]  [-u owner]  [-t device-name]
       tunctl [-f tun-clone-device]  -d device-name
DESCRIPTION
       This manual page documents briefly the tunctl command.
       This  manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual
       page.  Instead, it has documentation in HTML format; see below.
        tunctl allows the host sysadmin to preconfigure a TUN/TAP device for use by a particular user. That user may open  and
       use the device, but may not change any aspects of the host side of the interface.
USAGE
        To create an interface for use by a particular user, invoke tunctl without the -d option:
        tunctl -u someuser       #Set 'tap0' persistent and owned by 'someuser'
        Then, configure the interface as normal:
        ifconfig tap0 192.168.0.254 up
        route add -host 192.168.0.253 dev tap0
        bash -c 'echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp'
        arp -Ds 192.168.0.253 eth0 pub

        To delete the interface, use the -d option:
       tunctl -d tap0    #Set 'tap0' nonpersistent

3 TUN/TAP

    tun/tap 驱动程序实现了虚拟网卡的功能, tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。 利用tun/tap 驱动,可以将tcp/ip协议栈处理好的网络分包传给任何一个使用tun/tap驱动的进程,由进程重新处理后再发到物理链路中。 

3.1 Tun/Tap驱动程序工作原理

    做为虚拟网卡驱动,Tun/Tap驱动程序的数据接收和发送并不直接和真实网卡打交道, 而是 在Linux内核中添加了一个TUN/TAP虚拟网络设备的驱动程序和一个与之相关连的字符设备 /dev/net/tun,字符设备tun作为用户空间和内核空间交换数据的接口。
    当内核将数据包发送到虚拟网络设备时,数据包被保存在设备相关的一个队 列中,直到用户空间程序通过打开的字符设备tun的描述符读取时,它才会被拷贝到用户空间的缓冲区中,其效果就相当于,数据包直接发送到了用户空间。通过 系统调用write发送数据包时其原理与此类似。
    在linux下,要实现 内核空间 和 用户空间 数据的交互,有多种方式:可以通用socket创建特殊套接字,利用套接字实现数据交互;通过proc文件系统创建文件来进行数据交互;还可以使用设备文件的方式,访问设备文件会调用设备驱动相应的例程,设备驱动本身就是 内核空间 和 用户空间 的一个接口, Tun/tap驱动就是利用设备文件实现 用户空间 和 内核空间 的数据交互

    从结构上来说,Tun/tap驱动并不单纯是实现网卡驱动,同时它还实现了字符设备驱动部分。以字符设备的方式连接用户空间和内核空间。
    Tun/tap 驱动程序中包含两个部分,一部分是字符设备驱动,还有一部分是网卡驱动部分。利用网卡驱动部分接收来自TCP/IP协议栈的网络分包并发送或者反过来将接收到的网络分包传给协议栈处理,而字符驱动部分则将网络分包在 用户空间和内核空间 之间传送,模拟物理链路的数据接收和发送。Tun/tap驱动很好的实现了两种驱动的结合。
    

3.2 设置    

3.2.1 确认内核是否支持tun/tap

确认内核是否有tun模块
  [root@hunterfu]# modinfo tunfilename:       /lib/modules/2.6.34.7-56.fc13.i686.PAE/kernel/drivers/net/tun.koalias:          char-major-10-200license:        GPLauthor:         (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>description:    Universal TUN/TAP device driversrcversion:     880DE258930FE60D765B735depends:        vermagic:       2.6.34.7-56.fc13.i686.PAE SMP mod_unload 686 

加载内核模块
  [root@hunterfu ~]#  modprobe tun[root@hunterfu ~]# lsmod | grep tuntun                    10548  1 
执行以上命令后,出现如上输出,说明模块加载成功

3.2.2 创建和配置虚拟网卡

确认是否有tunctl命令,如果没有通过yum安装即可
apt-get install  uml-utilities  或 yum install tunctl
创建虚拟网卡设备
tunctl -t tap0 -u root
设置虚拟网卡
ifconfig tap0 192.168.0.1  netmask 255.255.255.0 promisc
经过如上操作后,虚拟网卡已经建立和配置好了。

3.2.3 作为系统服务随系统自动启动创建虚拟网卡

编写配置脚本(符合chkconfig规范)
 
[root@hunterfu ~]# cat /etc/init.d/config_tap #!/bin/bash## config_tap          Start up the tun/tap virtual nic## chkconfig: 2345 55 25USER="root"TAP_NETWORK="192.168.0.1"TAP_DEV_NUM=0DESC="TAP config"do_start() {if [ ! -x /usr/sbin/tunctl ]; thenecho "/usr/sbin/tunctl was NOT found!"exit 1fitunctl -t tap$TAP_DEV_NUM -u rootifconfig tap$TAP_DEV_NUM ${TAP_NETWORK}  netmask 255.255.255.0 promiscifconfig tap$TAP_DEV_NUM}do_stop() {ifconfig tap$TAP_DEV_NUM down }do_restart() {do_stopdo_start}check_status() {ifconfig tap$TAP_DEV_NUM }case $1 in start)    do_start;;stop)     do_stop;;restart)  do_restart;;status)echo "Status of $DESC: "check_statusexit "$?";;*)echo "Usage: $0 {start|stop|restart|status}"exit 1 esac

可以根据具体需求修改此脚本
加入到系统服务中
  [root@hunterfu ~]# chkconfig --add config_tap [root@hunterfu ~]# chkconfig --level 345 config_tap on
操作完成后,就可以像其他标准服务一样,通过 service config_tap start 来进行创建和启动操作    

4 tunctl添加tap并用brctl添加到网桥

root@host# ifconfig -a
eth0      Link encap:Ethernet  HWaddr fa:16:3e:7b:4e:e1inet addr:192.168.33.24  Bcast:192.168.47.255  Mask:255.255.240.0inet6 addr: fe80::f816:3eff:fe7b:4ee1/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1454  Metric:1RX packets:5922 errors:0 dropped:0 overruns:0 frame:0TX packets:2002 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:503405 (503.4 KB)  TX bytes:322612 (322.6 KB)lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)root@host# tunctl
Set 'tap0' persistent and owned by uid 0
root@host# ifconfig -a
eth0      Link encap:Ethernet  HWaddr fa:16:3e:7b:4e:e1inet addr:192.168.33.24  Bcast:192.168.47.255  Mask:255.255.240.0inet6 addr: fe80::f816:3eff:fe7b:4ee1/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1454  Metric:1RX packets:6089 errors:0 dropped:0 overruns:0 frame:0TX packets:2057 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:514735 (514.7 KB)  TX bytes:339978 (339.9 KB)lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap0      Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edBROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)root@host# tunctl
Set 'tap1' persistent and owned by uid 0
root@host# ifconfig -a
eth0      Link encap:Ethernet  HWaddr fa:16:3e:7b:4e:e1inet addr:192.168.33.24  Bcast:192.168.47.255  Mask:255.255.240.0inet6 addr: fe80::f816:3eff:fe7b:4ee1/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1454  Metric:1RX packets:6323 errors:0 dropped:0 overruns:0 frame:0TX packets:2116 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:530988 (530.9 KB)  TX bytes:347960 (347.9 KB)lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap0      Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edBROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap1      Link encap:Ethernet  HWaddr 7e:6a:fc:31:18:35BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)root@host# brctl show
bridge name     bridge id               STP enabled     interfaces
root@host# ifconfig tap0 0.0.0.0
root@host# ifconfig tap1 0.0.0.0
root@host# ifconfig -a
eth0      Link encap:Ethernet  HWaddr fa:16:3e:7b:4e:e1inet addr:192.168.33.24  Bcast:192.168.47.255  Mask:255.255.240.0inet6 addr: fe80::f816:3eff:fe7b:4ee1/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1454  Metric:1RX packets:7246 errors:0 dropped:0 overruns:0 frame:0TX packets:2525 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:595705 (595.7 KB)  TX bytes:545518 (545.5 KB)lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap0      Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edUP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap1      Link encap:Ethernet  HWaddr 7e:6a:fc:31:18:35UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)root@host# brctl addbr br-zhai
root@host# brctl addif br-zhai tap0
root@host# brctl addif br-zhai tap1
root@host# ifconfig -a
br-zhai   Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edBROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)eth0      Link encap:Ethernet  HWaddr fa:16:3e:7b:4e:e1inet addr:192.168.33.24  Bcast:192.168.47.255  Mask:255.255.240.0inet6 addr: fe80::f816:3eff:fe7b:4ee1/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1454  Metric:1RX packets:7515 errors:0 dropped:0 overruns:0 frame:0TX packets:2616 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:615539 (615.5 KB)  TX bytes:561216 (561.2 KB)lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap0      Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edUP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap1      Link encap:Ethernet  HWaddr 7e:6a:fc:31:18:35UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)root@host# brctl show
bridge name     bridge id               STP enabled     interfaces
br-zhai         8000.7e13f129c0ed       no              tap0tap1
root@host# ifconfig br-zhai 192.168.9.1 up
root@host# ifconfig br-zhai
br-zhai   Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edinet addr:192.168.9.1  Bcast:192.168.9.255  Mask:255.255.255.0UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
root@host# brctl showmacs br-zhai
port no mac addr                is local?       ageing timer1     7e:13:f1:29:c0:ed       yes                0.002     7e:6a:fc:31:18:35       yes                0.00
root@host# brctl
Usage: brctl [commands]
commands:addbr           <bridge>                add bridgedelbr           <bridge>                delete bridgeaddif           <bridge> <device>       add interface to bridgedelif           <bridge> <device>       delete interface from bridgehairpin         <bridge> <port> {on|off}        turn hairpin on/offsetageing       <bridge> <time>         set ageing timesetbridgeprio   <bridge> <prio>         set bridge prioritysetfd           <bridge> <time>         set bridge forward delaysethello        <bridge> <time>         set hello timesetmaxage       <bridge> <time>         set max message agesetpathcost     <bridge> <port> <cost>  set path costsetportprio     <bridge> <port> <prio>  set port priorityshow            [ <bridge> ]            show a list of bridgesshowmacs        <bridge>                show a list of mac addrsshowstp         <bridge>                show bridge stp infostp             <bridge> {on|off}       turn stp on/offroot@host# ifconfig tap0 promisc
root@host# ifconfig
br-zhai   Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edinet addr:192.168.9.1  Bcast:192.168.9.255  Mask:255.255.255.0UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)eth0      Link encap:Ethernet  HWaddr fa:16:3e:7b:4e:e1inet addr:192.168.33.24  Bcast:192.168.47.255  Mask:255.255.240.0inet6 addr: fe80::f816:3eff:fe7b:4ee1/64 Scope:LinkUP BROADCAST RUNNING MULTICAST  MTU:1454  Metric:1RX packets:115463 errors:0 dropped:0 overruns:0 frame:0TX packets:6834 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:11942923 (11.9 MB)  TX bytes:1083602 (1.0 MB)lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap0      Link encap:Ethernet  HWaddr 7e:13:f1:29:c0:edUP BROADCAST PROMISC MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)tap1      Link encap:Ethernet  HWaddr 7e:6a:fc:31:18:35UP BROADCAST MULTICAST  MTU:1500  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)


参考:
1 Linux操作系统下Virtual Box的网络设置:http://www.51cto.com/art/200709/56461.htm       

Linux

多网卡绑定、

IP

别名

2 Linux多网卡绑定、IP别名:https://wenku.baidu.com/view/6a4c0e6f31126edb6f1a10a4.html


这篇关于tunctl添加虚拟网卡TUN/TAP与brctl添加网桥的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079127

相关文章

关于C++中的虚拟继承的一些总结(虚拟继承,覆盖,派生,隐藏)

1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下: class A class B1:public virtual A; class B2:pu

VirtualBox中,虚拟系统文件VDI移动或者复制

在安装virtualbox以后有时需要复制,移动虚拟磁盘等操作,这些操作在vmware的虚拟机下面可以直接操作虚拟磁盘即可使用,但是在virtualbox环境 下每个VDI 文件都有一个唯一的uuid,而VirtualBox 不允许注册重复的uuid,所以直接复制的VDI文件是不能拿来使用的,我们就需要使用到virtualbox自带的管理命令来克隆一个VDI,这样通过命令克隆的VDI文件会重

博通5720 windows server 2003 32位网卡驱动和系统

driver for DELL R320 Broadcom 5720 Windows 2003 32bit 本人安装windows server 2003 网卡驱动成功!! 提供方便网盘下载地址博通5720网卡驱动 : http://pan.baidu.com/s/1GQWpw  windows server 2003 ghost 系统: http://pan

人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展|顶刊速递·24-06-23

小罗碎碎念 本期推文主题:人工智能在数字病理切片虚拟染色以及染色标准化领域的研究进展 这一期的推文是我发自内心觉得为数不多,特别宝贵的一篇推文,原因很简单——可参考的文献相对较少&方向非常具有研究意义&现在不卷。 数字病理方向的老师/同学应该清楚,不同中心提供的切片,染色方案是存在差异的,并且还存在各种质量问题,所以我们在数据预处理的时候,通常会先对切片的质量执行一遍筛选,然后再进行染

以太坊==windows电脑本地搭建一个虚拟的以太坊环境

提供不同的选择,适合不同需求和技术水平的开发者: Geth:适合需要与主网兼容或构建私有网络的开发者。Ganache:适合快速开发和测试智能合约的开发者,特别是初学者。Docker:适合需要快速、可重复搭建环境的开发者。Besu:适合企业级应用和需要企业支持的开发者。 本文使用 Ganache 下载 Ganache - Truffle Suite remix IDE中使用

SpringBoot + 虚拟线程,鸟枪换大炮!

“虚拟”线程,望文生义,它是“假”的,它不直接调度操作系统的线程,而是由JVM再提供一层线程的接口抽象,由普通线程调度,即一个普通的操作系统线程可以调度成千上万个虚拟线程。 虚拟线程比普通线程的消耗要小得多得多,在内存足够的情况下,我们甚至可以创建上百万的虚拟线程,这在之前(Java19以前)是不可能的。 ❝ 其实如果有用过akka的朋友们会发现,其实两者很相似,只不过使用akka是应用程序

Nature | 解锁大脑运动控制机理!哈佛大学与DeepMind实现「AI大脑」控制虚拟老鼠

近日,哈佛大学的研究人员与谷歌DeepMind AI 实验室合作,开发出了一种虚拟大鼠模型,以研究大脑如何控制真实老鼠的运动。这个创新的模型准确地模拟了在真实大鼠身上观察到的神经活动,可以用于探讨大脑是如何控制动物的运动行为。 该重磅研究《A virtual rodent predicts the structure of neural activity across behaviors》已于

计算机硬件里的:网卡,集线器,交换机,路由器,猫

1.RJ45接口: RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。RJ是Registered Jack的缩写,意思是“注册的插座”。在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称。 2.网卡: 英文名:network adapter(网

关于使用绿联 USB-A转RJ45 2.5G网卡提速的解决问题

问题 网络下载速率低 我的自带网卡是 I219v 在嵌入了2.5G网络后一直无法到达1.5G以上。 平均测速300~500M 解决方案 更新了USB的网卡驱动 禁用了 I219-V的驱动。测速即可 USB下载地址 https://download.csdn.net/download/qq_28198181/89468806

USB2.0网卡安装驱动

有三种安装方式: 驱动精灵驱动总裁USB2.0网卡自带安装程序 前两种很简单,下载驱动精灵或者驱动总裁,然后检测本地硬件,安装相应驱动。 本文重点要介绍的是第三种,利用USB2.0网卡自带的安装程序。有的时候驱动精灵或者驱动程序无法检测到USB2.0网卡设备,没办法安装相应的驱动程序。 需要提及的是,并不是所有的usb网卡驱动都能这么装驱动,即便是同一个厂家生产的同一个牌子的usb网卡。只