Open vSwitch常用指令

2023-05-16

link設定 OpenvSwitch by roan,内容相对比较全面,但是给出的网页链接废了好多

流表中数字越大,优先级越高
各个组件的命令有什么子命令和功能,直接--help
e.g. ovs-ofctl --help

关于显示

ovs-vsctl list bridge br0

在这里插入图片描述

关于port

更改 ofport (openflow port number)为100:

ovs-vsctl  set Interface eth0 ofport_request=100

设置 port 为 internal

ovs-vsctl set Interface eth0 type=internal

关于controller

设置 Controller

ovs-vsctl set-controller br0 tcp:1.2.3.4:6633

设置 multi controller

ovs-vsctl set-controller br0 tcp:1.2.3.4:6633 tcp:5.6.7.8:6633

查询 Controller

ovs-vsctl get-controller br0 

在这里插入图片描述

关于OpenFlow version

支持OpenFlow  协议1.3 1.2
root@sdnhubvm:~[18:35]$ ovs-vsctl set bridge br0 protocols=OpenFlow12,OpenFlow13
root@sdnhubvm:~[18:46]$ ovs-vsctl clear bridge br0 protocols
没有什么明确的东西出来

关于VLAN

一到ofctl的复杂指令我就看不懂

关于Dump flows

怎么我又没有关terminal为什么今天我的流表又没了???

Dumps OpenFlow flows 不含 hidden flows (常用

root@sdnhubvm:~[18:52]$ ovs-ofctl dump-flows br0
NXST_FLOW reply (xid=0x4):

Dumps OpenFlow flows 包含 hidden flows
这些出来的都是hidden flows,但是我昨天那些table 0, 1, 2, 3, 4, 10的设置咋都没了orz

root@sdnhubvm:~[18:53]$ ovs-appctl bridge/dump-flows br0
table_id=254, duration=53967s, n_packets=0, n_bytes=0, priority=2,recirc_id=0,actions=drop
table_id=254, duration=53967s, n_packets=0, n_bytes=0, priority=1,actions=resubmit(,0)
table_id=254, duration=53967s, n_packets=0, n_bytes=0, priority=0,reg0=0x1,actions=controller(reason=no_match)
table_id=254, duration=53967s, n_packets=0, n_bytes=0, priority=0,reg0=0x2,actions=drop
table_id=254, duration=53967s, n_packets=0, n_bytes=0, priority=0,reg0=0x3,actions=drop

Dump 特定 bridge 的 datapath flows 不論任何 type
???什么反应都没有

root@sdnhubvm:~[18:54]$ ovs-appctl dpif/dump-flows br0

Dump 在 Linux kernel 裡的 datapath flow table (常用)

root@sdnhubvm:~[18:57]$ ovs-dpctl dump-flows
flow-dump from pmd on cpu core: 32767
recirc_id(0),in_port(8),eth(src=52:54:00:12:35:02,dst=08:00:27:30:49:74),eth_type(0x0806), packets:2, bytes:120, used:6.165s, actions:9

Top like behavior for ovs-dpctl dump-flows

ovs-dpctl-top

???
在这里插入图片描述

关于feedback

Controller connection: false 的時候, 會自動調成 legacy switch mode

ovs-vsctl set-fail-mode ovs-br standalone

無論 Controller connection status 為何, 都必須通過 OpenFlow 來進行網路行為 (default)

ovs-vsctl set-fail-mode ovs-br secure

移除

ovs-vsctl del-fail-mode ovs-br

查询

root@sdnhubvm:~[19:05]$ ovs-vsctl get-fail-mode br0
secure

被删了之后就什么都不反馈
在这里插入图片描述

关于sFlow

sFlow,名称来自流量采样(英语:sampled flow)的缩写,是一种工业规格,用来测量OSI模型第二层封包。这个规格提供了一个方法,以取样的方式,获得网络封包的资讯,让网络管理人员可以了解网络的运作状况,了解网络壅塞的原因。
查詢

ovs-vsctl list sflow

新增

Set sFlow

刪除

ovs-vsctl -- clear Bridge ovs-br sflow

真实毫无反应,到底是干啥的
在这里插入图片描述

NetFlow是一种网络监测功能,可以收集进入及离开网络界面的IP封包的数量及资讯,最早由思科公司研发,应用在路由器及交换器等产品上。经由分析Netflow收集到的资讯,网络管理人员可以知道封包的来源及目的地,网络服务的种类,以及造成网络壅塞的原因

sampled flow aka(also known as) sFlow

hough sFlow stands for Sampled Flow, actual packets are being sampled here instead of flows. Sampling involves either copying headers of packets, or extracting features from packet. The goal of packet sampling and filtering is to forward only certain packets. Based on a defined sampling rate, an average of 1 out of n packets is randomly sampled. sFlow agent running within a router or a switch, packages interface counters and flow samples into sFlow datagrams. The datagrams are continuously sent using UDP to the sFlow Collector where they are further analyzed.

NetFlow versus sFlow

SFlow has an ability to monitor L2-L7 headers, the ability to monitor L2 headers (MAC, VLAN ID) has been added to NetFlow v9.

Packet sampling is hardware based and is performed by switching ASICs, achieving wire speed performance. It makes sFlow a scalable technology which is able to monitor the links with the speed of up to 10 GBps.

BGP in Large Networks eBook

sFlow datagrams are continuously sent across the network in real-time, while the export of NetFlow records depends on active/inactive timers. It may take up to 30 minutes to export flow when NetFlow is used. Obviously, sFlow is better in traffic visibility than NetFlow. It makes sFlow good at massive DoS attacks detection, as the sampled network patterns are sent on the fly to the sFlow collector.

Nevertheless, measurements provided by sFlow are only an approximation of the real traffic because sampled packets do not reflect all network traffic. As a result, sFlow lacks accuracy provided by NetFlow as it cannot track every network communication. The accuracy, however is highly required in digital forensics so sFlow cannot fully qualify for forensic investigation.

In-band and out-band

所谓connection mode
linkin-band和out-band的区别
在计算机网络领域,常常会遇见in-band和out-band两种不同的网络架构,它们的概念和区别是什么?

   In-band:频内,指那些数据控制已经被固定的网络协议,In-band 控制的控制数据通常和主要的传输数据公用用同样的连接链路(以太网通道),属于应用层管理。被管理设备只有处于开机状态并进入作业系统的情况下,才能进行管理。像SNMP(Simple Network Management Protocol)都是属于In-band协议。SNMP使用方便,但是存在一个固有的缺陷:SNMP 管理信息总是和网络数据使用同样的网络路径。它使用相同的WAN和LAN路由、中继器和连接链路。当网络中断或是严重受损的时候,SNMP流量就不能在向量的管理设备或是工作站中流通。当网络组件中断时,In-band失去网络连接,不能使用。

   Out-band:频外,又被称为熄灯(Lights out Mangement,LOM)管理,弥补了In-band的缺点,是指那些数据传输信道独立于正常的网络传输,被管理设备即使在关机状态甚至故障的状态下,都可以进行修复重开机或是日志监控等管理作业。这对于分离两种不同类型的数据是十分有用的。Out of band 管理指那些通过拨号电话线允许技术人员连接到网络组件(防火墙、路由器、网桥、交换机、服务器等)。在电话系统中,当用于建立语音通信的设备分离时,就使用Out of band通信建立语音通信。

   In-band管理相对于Out-band管理更廉价,但是在计算机网络中它不能够接触固件(BIOS和URFI),也不能够远程重新安装操作系统,不能修复系统booting的问题。在网络中,不允许独立于当前网络组件的网络组件进行远程管理。

查詢

ovs-vsctl get controller ovs-br connection-mode

Out-of-band

ovs-vsctl set controller ovs-br connection-mode=out-of-band

In-band (default)

ovs-vsctl set controller ovs-br connection-mode=in-band

移除 hidden flow 不知所云,用appctl查看后也没有移除掉啊

ovs-vsctl set bridge br0 other-config:disable-in-band=true
root@sdnhubvm:~[19:32]$ ovs-vsctl set-controller br0 tcp:1.2.3.4:6633
root@sdnhubvm:~[19:32]$ ovs-vsctl get controller br0 connection-mode
[]
root@sdnhubvm:~[19:32]$ ovs-vsctl set controller br0 connection-mode=out-of-band
root@sdnhubvm:~[19:33]$ ovs-vsctl get controller br0 connection-mode
out-of-band

事实证明in-band不是默认的,默认是么得

其他

查询OpenvSwitch版本

root@sdnhubvm:~[19:35]$ ovs-ofctl -V
ovs-ofctl (Open vSwitch) 2.3.90
Compiled Jan  8 2015 11:52:49
OpenFlow versions 0x1:0x4

查詢下過的指令歷史記錄

ovsdb-tool show-log [-mmm]

以下部分参考link 作为知识补充

  • ovs-vswtiched:openvswitch的守护进程.
  • ovsdb-server:openvswitch的数据库服务,保存相关配置信息,非常轻量级
  • kernel Datapath:Datapath是流的一个缓存,会把流的match结果cache起来,避免下一次流继续到用户空间进行flow match
  • controller:这个不是ovs自身的部件,而是一个抽象的概念,指的是ovs的控制者

这个缓存应该和流表没啥关系叭。。

基本概念

在这里插入图片描述

Port

端口是收发数据包的单元。OpenvSwitch中,每个端口都属于一个特定的网桥。端口收到的数据包会经过流规则的处理,发往其他端口;也会把其他端口来的数据包发送出去.主要有

类型说明
Normal用户可以把操作系统中的网卡绑定到ovs上,ovs会生成一个普通端口处理这块网卡进出的数据包。
Internal端口类型为internal时,ovs会创建一块虚拟网卡,端口收到的所有数据包都会交给该网卡,发出的包会通过该端口交给ovs。当ovs创建一个新网桥时,默认会创建一个与网桥同名的Internal Port
Patch当机器中有多个ovs网桥时,可以使用Patch Port把两个网桥连起来。Patch Port总是成对出现,分别连接在两个网桥上,在两个网桥之间交换数据。
Tunnel隧道端口是一种虚拟端口,支持使用gre或vxlan等隧道技术与位于网络上其他位置的远程端口通讯。

Interface

接口是ovs与外部交换数据包的组件。一个接口就是操作系统的一块网卡,这块网卡可能是ovs生成的虚拟网卡,也可能是物理网卡挂载在ovs上,也可能是操作系统的虚拟网卡(TUN/TAP)挂载在ovs上。

FlowTable

流定义了端口之间数据包的交换规则.

相关命令快速指南

ovs命令行挺复杂的,提供多个命令,每个命令又有多个不同的子命令,刚刚接触会觉得一团糟,但仔细理解ovs架构和基本概念后会发现命令使用起来非常简单.

  1. ovs对每个组件都会单独提供一个命令行,所以命令行的功能都非常的专一,理解了组件的用途,也就记住了命令行的用途和大概的子命令.
  2. 命令行的子命令其实就是对数据库的CURD,而数据库表其实就是OVS的核心概念,如Bridge,Ports,FlowTables等.

常用子命令说明

  • ovs-dpctl show -s
  • ovs-ofctl show, dump-ports, dump-flows, add-flow, mod-flows, del-flows
  • ovsdb-tools show-log -m
  • ovs-vsctl
    • show 显示数据库内容
    • 关于桥的操作 add-br, list-br, del-br, br-exists.
    • 关于port的操作 list-ports, add-port, del-port, add-bond, port-to-br.
    • 关于interface的操作 list-ifaces, iface-to-br
    • ovs-vsctl list/set/get/add/remove/clear/destroy table record column [value], 常见的表有bridge,controller,interface,mirror,netflow,open_vswitch,port,qos,queue,ssl,sflow.
  • ovs-appctl list-commands, fdb/show, qos/show

日常操作

查看有哪些桥,桥中有哪些ports,哪些interfaces

root@sdnhubvm:~[19:37]$ ovs-vsctl list-br
br0
mybridge
ovs-switch
root@sdnhubvm:~[20:14]$ ovs-vsctl list-ports br0
p
p1
p2
p3
p4
root@sdnhubvm:~[20:14]$ ovs-vsctl list-ifaces br0
p
p1
p2
p3
p4

查看port,interface属于哪个bridge,xxx-to-br即可.

root@sdnhubvm:~[20:14]$ ovs-vsctl port-to-br p0
ovs-switch
root@sdnhubvm:~[20:16]$ ovs-vsctl iface-to-br o3
ovs-vsctl: no interface named o3
root@sdnhubvm:~[20:16]$ ovs-vsctl iface-to-br p3
br0

查看bridge中的流表

ovs-ofctl dump-flows br-ex

流表规则中往往使用portid来指定相关的port,可以使用show命令来对应port name与port id.

root@sdnhubvm:~[20:17]$ ovs-ofctl show br0
OFPT_FEATURES_REPLY (xid=0x2): dpid:0000267742430b49
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(p1): addr:0e:0c:85:5b:92:88
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 2(p2): addr:2a:75:16:8c:d4:a1
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 3(p3): addr:2e:02:cc:06:46:89
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 4(p4): addr:72:e9:09:fd:1f:7f
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br0): addr:26:77:42:43:0b:49
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0

查看隐藏的流表规则,很少使用
ovs-appctl bridge/dump-flows br0

查看一些有用的统计信息
查看datapath统计信息.主要关注lost数值.hit表示datapath命中数,missed未命中,lost表示没有传递到用户空间就丢弃了. 主要关注lost值是否上升,如果上升说明存在问题了.该命令可以使用-s选项,会将每个port的统计信息也显示出来.

root@sdnhubvm:~[20:19]$ ovs-dpctl show
system@ovs-system:
	lookups: hit:5000 missed:603 lost:0
	flows: 1
	masks: hit:5012 total:1 hit/pkt:0.89
	port 0: ovs-system (internal)
	port 1: p2 (internal)
	port 2: p3 (internal)
	port 3: p4 (internal)
	port 4: p1 (internal)
	port 5: br0 (internal)
	port 6: p0 (internal)
	port 7: ovs-switch (internal)
	port 8: eth0
	port 9: mybridge (internal)
root@sdnhubvm:~[20:29]$ ovs-dpctl show -s
system@ovs-system:
	lookups: hit:5012 missed:603 lost:0
	flows: 1
	masks: hit:5024 total:1 hit/pkt:0.89
	port 0: ovs-system (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 1: p2 (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 2: p3 (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 3: p4 (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 4: p1 (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 5: br0 (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 6: p0 (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 7: ovs-switch (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0
	port 8: eth0
		RX packets:5623 errors:0 dropped:0 overruns:0 frame:0
		TX packets:5637 errors:0 dropped:0 aborted:0 carrier:0
		collisions:0
		RX bytes:344945 (336.9 KiB)  TX bytes:340214 (332.2 KiB)
	port 9: mybridge (internal)
		RX packets:0 errors:0 dropped:0 overruns:0 frame:0
		TX packets:0 errors:0 dropped:5615 aborted:0 carrier:0
		collisions:0
		RX bytes:0  TX bytes:0

ovs-ofctl dump-ports br [port]也可以查看port的统计信息.这个命令优势是可以指定port.
查看bridge的转发表

root@sdnhubvm:~[20:33]$ ovs-appctl fdb/show br0
 port  VLAN  MAC                Age

设置qos

ovs-vsctl set Interface tap0 ingress_policing_rate=100000 
ovs-vsctl set Intervace tap ingress_policing_burst=10000
ovs-appctl qos/show <iface>

调试技巧

查看流规则的匹配

 watch -d -n 1 "ovs-ofctl dump-flows br0"

在这里插入图片描述

查看统计信息

ovs-dpctl show -s
ovs-dpctl show 
ovs-ofctl dump-ports <br> [port]

使用tcpdump抓包,需要设置端口镜像

以后再试

ip link add name snooper0 type dummy
ip link set dev snooper0 up
ovs-vsctl add-port br-int snooper0

# ovs-vsctl -- set Bridge br-int mirrors=@m -- --id=@snooper0 \
  get Port snooper0  -- --id=@patch-tun get Port patch-tun \
  -- --id=@m create Mirror name=mymirror select-dst-port=@patch-tun \
  select-src-port=@patch-tun output-port=@snooper0 select_all=1

tcpdump -i snooper0

ovs-vsctl clear Bridge br-int mirrors
ovs-vsctl del-port br-int snooper0
ip link delete dev snooper0

查看日志

 ovsdb-tool show-log -m

使用ovs-appctl ofproto/trace <bridge> k1=v1,k2=v2测试流匹配

FAQ

Q: Why would I use Open vSwitch instead of the Linux bridge?
A: Open vSwitch is specially designed to make it easier to manage VM network configuration and monitor state spread across many physical hosts in dynamic virtualized environments. Please see WHY-OVS.md for a more detailed description of how Open vSwitch relates to the Linux Bridge.

Q: Why can I no longer connect to my OpenFlow controller or OVSDB manager?
A: Starting in OVS 2.4, we switched the default ports to the IANA-specified port numbers for OpenFlow (6633->6653) and OVSDB (6632->6640). We recommend using these port numbers, but if you cannot, all the programs allow overriding the default port. See the appropriate man page.

Q: I hear OVS has a couple of kinds of flows. Can you tell me about them?
A: Open vSwitch uses different kinds of flows for different purposes:

OpenFlow flows are the most important kind of flow. OpenFlow controllers use these flows to define a switch’s policy. OpenFlow flows support wildcards, priorities, and multiple tables.

When in-band control is in use, Open vSwitch sets up a few “hidden” flows, with priority higher than a controller or the user can configure, that are not visible via OpenFlow. (See the “Controller” section of the FAQ for more information about hidden flows.)

The Open vSwitch software switch implementation uses a second kind of flow internally. These flows, called “datapath” or “kernel” flows, do not support priorities and comprise only a single table, which makes them suitable for caching. (Like OpenFlow flows, datapath flows do support wildcarding, in Open vSwitch 1.11 and later.) OpenFlow flows and datapath flows also support different actions and number ports differently.

Datapath flows are an implementation detail that is subject to change in future versions of Open vSwitch. Even with the current version of Open vSwitch, hardware switch implementations do not necessarily use this architecture.

Users and controllers directly control only the OpenFlow flow table. Open vSwitch manages the datapath flow table itself, so users should not normally be concerned with it.

Q: Why are there so many different ways to dump flows?
A: Open vSwitch has two kinds of flows (see the previous question), so it has commands with different purposes for dumping each kind of flow:

ovs-ofctl dump-flows
dumps OpenFlow flows, excluding hidden flows. This is the most commonly useful form of flow dump. (Unlike the other commands, this should work with any OpenFlow switch, not just Open vSwitch.)

ovs-appctl bridge/dump-flows
dumps OpenFlow flows, including hidden flows. This is occasionally useful for troubleshooting suspected issues with in-band control.

ovs-dpctl dump-flows [dp] dumps the datapath flow table entries for a Linux kernel-based datapath. In Open vSwitch 1.10 and later, ovs-vswitchd merges multiple switches into a single datapath, so it will show all the flows on all your kernel-based switches. This command can occasionally be useful for debugging.

ovs-appctl dpif/dump-flows
, new in Open vSwitch 1.10, dumps datapath flows for only the specified bridge, regardless of the type.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Open vSwitch常用指令 的相关文章

  • 2020CVPR对抗样本相关论文整理(有开源代码)

    目录 攻击防御 攻击 1 Towards Large yet Imperceptible Adversarial Image Perturbations withPerceptual Color Distance code链接 朝向具有感知
  • GAN & 对抗样本

    目录 关于对抗样本的解释GAN原理简介GAN生成对抗样本的发展 关于对抗样本的解释 对于对抗样本为何能够攻击成功 xff0c 目前有以下三种解释 xff1a 高维空间的线性模型解释 xff1a 当输入为图像时 xff0c 沿着梯度方向很小的
  • 块元素与内联元素的区别

    在css盒子模型中 xff0c 我们提到了html元素中的块元素 xff08 block element xff09 和内联元素 xff08 inline element xff09 那么它们究竟是什么呢 xff1f 其实 xff0c 这两
  • Ubuntu实用安装

    1 用DVD xff0f 服务器版 ubuntu 来安装命令行系统 2 编辑更新软件源 sudo cp etc apt source list etc apt source list bak 3 安装 X 窗口系统 xff1a sudo a
  • 关于Haar名称一点想说的:Haar而非Harr

    见到一些中文文献 博客 师兄们的简历都出现以一个叫 Harr 的特征 xff0c 有些疑惑 刨根问底一下 xff0c 最后得出结论Harr应该是对Haar的误写 Haar特征因为使用的是Haar小波变换而得名 xff0c 哈尔小波转换 是于
  • 安装远程连接Ubuntu Server 的图形界面——x2go远程连接桌面

    想要远程连接你的Ubuntu服务器的图形界面么 xff1f 这里有个简单的指导告诉你如何使用X2Go来实现 xff0c 这是一个NX远程桌面协议的衍生版本 你所需要做的就是 1 在服务器上面安装X2Go服务端和桌面环境 xff0c 2 在客
  • PHP正则表达式之\A、\Z、 \z、^、$

    文章目录 A Z z 断言与 之间的区别单行模式和多行模式的差异换行符匹配的差异 示例代码及解读文中提到的模式修饰符D PCRE DOLLAR ENDONLY m PCRE MULTILINE A Z z 断言与 之间的区别 A xff0c
  • #发布npm包遇到错误,因为用了淘宝镜像地址的原因的解决方法-403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.cou

    使用npm login 也可以使用npm adduser 登录准备发布npm依赖包到npm时 xff0c 遇到问题 xff1a span class token function npm span ERR span class token
  • 面向对象设计和结构化分析设计(软件设计师备考笔记)

    目录 第十章 面向对象设计和结构化分析设计 第一节 结构化设计 第二节 UML 第三节 面向对象设计 设计原则 第四节 面向对象设计 设计模式 第五节 结构化分析 数据流图 DFD 必考 下午第一道题 第六节 面向对象设计方法 多态与绑定
  • 大厂Mysql高频面试题!java操作excelpoi

    微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单 松耦合的服务 xff0c 这样可以降低开发难度 增强扩展性 便于敏捷开发 当前被越来越多的开发者推崇 xff0c 很多互联网行业巨头 开源社区等都开始了微服务的讨论和实践 微服务
  • 知已知彼 ^.^

    如何做一个让男人尊敬的精致女人 转贴 作者 LUKECYK 浏览 160 1 如果一个男人开始怠慢你 xff0c 请你离开他 不懂得疼惜你的男人不要为之不舍 xff0c 更不必继续付出你的柔情和爱情 2 任何时候 xff0c 不要为一个负心
  • 单片机 -定时器计数器工作原理及工作方式

    时钟周期 时钟周期 T 是时序中最小的时间单位 xff0c 具体计算的方法就是 1 时钟源频率 xff0c 假如单片的晶振是 11 0592M xff0c 那么对于我们这个单片机系统来说 xff0c 时钟周期 61 1 11059200 秒
  • 单片机 LCD1602

    LCD1602为工业字符型液晶 xff0c LCD表示LiquidCrystal Display 能够同时显示16 x 2 xff08 16列2行 xff09 即32个字符 1602液晶也叫1602字符型液晶 xff0c 它是一种专门用来显
  • javascript进制及进制之间的转换

    计算机中常用的进制数有二进制 八进制 十进制 十六进制 一 十进制 转 其他 span class token keyword var span x span class token operator 61 span span class
  • 解决进入Ubuntu系统花屏的问题

    安装ubuntu后进入系统花屏 详细步骤 详细步骤 开机选择进入Ubuntu的高级系统模式 gt 恢复模式 xff0c 选择root xff0c 进入命令行界面 输入 xff1a sudo vim etc default grub 打开gr
  • 李沐:用随机梯度下降来优化人生

    用SGD来优化人生 要有目标目标要大坚持走痛苦的卷可以躺平四处看看快也是慢赢在起点很远也能到达独一无二简单最好 转载 xff0c 用随机梯度下降来优化人生1 xff1a https zhuanlan zhihu com p 41400931
  • Ubuntu18.04 + kinova joca2机械臂 + RealSense D435i深度相机进行eye to hand手眼标定

    文章目录 前言一 前期准备1 RealSense D435i安装2 Kinova ROS安装 二 手眼标定环境配置1 visip2 aruco ros3 easy handeye 三 标定前准备1 终端python版本设置2 opencv4
  • 相机成像原理详解

    ybwu 64 whu edu cn 被摄景物反射出的光线通过照相镜头 xff08 摄景物镜 xff09 和控制曝光量的快门聚焦后 xff0c 被摄景物在暗箱内的感光材料上形成潜像 xff0c 经冲洗处理 xff08 即显影 定影 xff0
  • python和numpy matplotlib版本匹配,以及安装指定版本库

    python和numpy matplotlib版本匹配 xff0c 以及安装指定版本库 文章目录 python和numpy matplotlib版本匹配 xff0c 以及安装指定版本库一 卸载二 安装三 验证 Matplotlib is a
  • wegame桌面丢失(所有软件都可用)

    1 打开此电脑 2 右上角搜索引擎里输入代码tgp daemon 即可 如果想要放在左面或者添加快捷方式邮寄此软件 会出现 创建快捷方式 或者固定到 开始位置

随机推荐

  • 人脸识别的LOSS(多分类Softamx)

    人脸1 xff1a N应用 xff1a https blog csdn net intflojx article details 81278330 超多分类的Softmax 早期深度人脸识别方法 xff0c 框架为CNN 43 Softma
  • 一些范冰冰的照片

    你可以说她YD xff0c 也可以说她XJ xff0c 但是你不能否认她的美丽 偶就是无敌小超人 xff0c 克塞前来拜访 热门圈子 xff1a 王仁甫 张佑赫 王绍伟 tony 明道 快速评论 共 19 条回复
  • vnc的默认端口修改

    http inthirties com 90 thread 1261 1 1 html vnc的默认端口是5901 xff0c 这个说法是不对的 vnc并不是只有一个端口 以前另一个文章介绍了nvcserver的配置用户的过程 xff0c
  • JavaScript 关于进制之间的转换实现

    JS要实现进制之间的转换 xff0c 可以利用parseInt xff0c toString完成 1 n进制 gt 10进制 xff1a parseInt string radix 2 n进制 gt radix进制 xff1a a toSt
  • VNC Server配置

    VNC登录用户缺省是root xff0c 但在安装oracle时必须用oracle用户的身份登录 xff0c 下面我们就以oracle为例说明如何配置VNC xff0c 从而可以使用不同的用户登录到主机 步骤描述如下 xff1a 步骤一 x
  • 文字检测识别技术的未来发展趋势和面临的选择

    未来发展趋势和面临的挑战 1文本检测与识别技术的未来发展趋势 场景文本检测与识别的研究发展趋势 场景文本检测识别目前来讲大概分为场景文本检测 场景文本识别 以及端到端文本检测和识别三个主要的方向 其中文本检测方法主要是包括基于文本框回归的分
  • [SIGCOMM2016]Robotron: Top-down Network Management at Facebook Scale

    Facebook面临的问题 分布式配置 xff1a 有很多配置需要在不同的系统中更改 多个Domain xff1a Facebook需要管理网络的网络版本控制 xff1a 需要管理不同版本的网络同时运行 依赖 xff1a 将新路由器添加到
  • Adversary Attack(对抗攻击)论文阅读笔记

    引言 最近开始学习Adversary Attack 对抗攻击 有关的内容 xff0c 于是便从Ian GoodFollow的论文开始读起 xff0c 后面每篇博客都会列举三篇的阅读笔记 xff0c 来记录学习的经历 如果有讲得不到位或者您有
  • 海睿思分享 | 浅谈数仓指标体系管理

    什么是指标 xff1f 指标 xff0c 是用于衡量事物发展程度的单位或方法 xff0c 也常被称作度量 xff0c 通常情况下也是报表统计的字段 xff0c 例如 xff1a 人口数 营业收入 用户数 利润率 成功率 失败率 覆盖率等 1
  • PyTorch 实战:计算 Wasserstein 距离

    xff08 给 Python开发者 加星标 xff0c 提升Python技能 xff09 编译 xff1a 机器之心 xff0c 作者 xff1a Daniel Daza 最优传输理论及 Wasserstein 距离是很多读者都希望了解的基
  • Java8 Lambda表达式教程

    1 什么是 表达式 表达式本质上是一个匿名方法 让我们来看下面这个例子 xff1a public int add int x int y return x 43 y 转成 表达式后是这个样子 xff1a int x int y gt x 4
  • VNC连接失败:The connection was refused by the host computer

    解决方法 xff1a 1 用Xshell登陆自己的服务器 2 在命令行中输入vncserver 命令行中出现 xff1a Warning optimal6 2 is taken because of tmp X2 lock Remove t
  • ACM会用到的一点数学知识

    1 费马小定理 xff1a a p mod p 61 a p为素数 xff0c 且a不是p的倍数 2 数n的约数个数 xff1a n分解因数为p1 s1 p2 s2 pm sm 则约数个数为 s1 43 1 s2 43 1 sm 43 1
  • SVN的Status总结

    执行SVN up和svn merge等命令出现在首位置的各字母含义如下 xff1a 无修改 A 新增 C 冲突 D 删除 G 合并 I 忽略 M 改变 R 替换 X 未纳入版本控制 xff0c 但被外部定义所用 未纳入版本控制 该项目已遗失
  • linux 下中文编码转换问题

    目标 xff1a 接收网络传过来的字节序 xff0c 转换字符串 全英文的情况下直接保存string即可 xff0c 带中文的情况试了好久故做如下记录 1 首先确认gcc 应该是utf 8的格式来存储字符串的 通过cmake 加入 fexe
  • Go 语言汇编快速入门

    在 Go 的源码中包含大量汇编语句 xff0c 最优秀的示例代码位于 math big runtime 和 crypto 这些库中 xff0c 但是从这里入门的话实在太过于痛苦 xff0c 这些示例都是着力于系统操作和性能的运行代码 对于没
  • 从零开始搭建Raspberry Pi机器视觉编程环境

    从零开始搭建Raspberry Pi机器视觉编程环境 本文主要包括如下内容 xff1a 安装Raspbian系统 连接和设置网络 安装中文支持 用电脑控制树莓派 通过SSH远程登录树莓派命令行界面 安装VNC远程登录树莓派图形桌面 通过串口
  • loss函数之margin改进方法

    最近sphereface人脸方法是目前开源人脸中最有效的方法 xff0c 通过改进我也获得了lfw acc 99 7 的结果 xff0c 下面几篇也是对sphereface改进的论文 xff1a AM Additive Margin Sof
  • mininet学习记录之openflow

    一 FAQ mn 指令的默认controller是ovs controller xff0c 最多只支持16个switch xff0c 如果要支持更多 xff0c 必须换controller OpenFlow reference implem
  • Open vSwitch常用指令

    link設定 OpenvSwitch by roan xff0c 内容相对比较全面 xff0c 但是给出的网页链接废了好多 流表中数字越大 xff0c 优先级越高 各个组件的命令有什么子命令和功能 xff0c 直接 help e g ovs