eBPF 网络堆栈pwru
pwru 是 Cilium 推出的基于 eBPF 开发的网络数据包排查工具,它提供了更细粒度的网络数据包排查方案。本文将介绍 pwru 的使用方法和经典场景,并介绍其实现原理。...阅读全文
pwru 是 Cilium 推出的基于 eBPF 开发的网络数据包排查工具,它提供了更细粒度的网络数据包排查方案。本文将介绍 pwru 的使用方法和经典场景,并介绍其实现原理。...阅读全文
谷歌开始在其Chrome浏览器中实现对HTTP/3的支持,该公司在一篇博客中宣布。此次更新将带来一些额外的性能改进,主要得益于实现了QUIC作为传输协议。互联网工程任务组(或IETF)早在2015年就推出了HTTP/2,它带来的一大改进就是支持复用。 但是,它采用了TCP作为传输协议,以及TCP中的丢失恢复机制,所以丢失的数据包仍然会造成所有活动事务的延迟。通过采用QUIC,HTTP/3可以进一步改善传输过程,因为丢失的数据包只会影响到直接受其影响的事务。 谷歌是QUIC的最初开发者,但该协议在IETF手中已经有一段时间了,现在IETF版本的QUIC与谷歌内部的QUIC有很大不同。到目前为止,谷歌只支持自己的QUIC实现,而IETF则还在研究其版本,但现在这种情况正在改变。谷歌表示...阅读全文
Google 宣布了 新拥堵控制算法 TCP BBR。Google 官方博客称新算法将 google.com 和 YouTube 的全球网络吞吐量平均改进了 4%,在某些国家改进了 14%+。 Google 解释说,现有的 TCP 拥堵控制算法源自 1980 年代,是为低带宽数据传输设计的,解决拥堵主要考虑丢包,也就是在网络堵塞的时候路由器将会丢弃新的数据包。BBR 代表 Bottleneck Bandwidth and Round-trip propagation time,它的拥堵控制采用了不同的方法,考虑了网络实际的数据交付率有多快。根据最近测量的网络交付率和往返时间构建显示模型,最大化近期可用带宽和最小化近期往返延迟。BBR 使用这些数据决定数据发送速率有多快。 Google 已经...阅读全文
得益于传输距离更广(300 米)、功耗更低、速度更快(2Mbps)、可同时连接两个音频设备等特性,蓝牙 5.0(2016 年 6 月正式发布)正快速普及中。 本周,蓝牙 SIG 组织宣布, 蓝牙 5.1 已交付开发者,新变化中最值得一说的便是位置查找( “direction finding” )特性。蓝牙组织希望借助 5.1 标准,取代 Wi-Fi 的辅助定位角色,为需要 GPS 等位置服务的场景助力, 包括确定距离甚至精确位置 。 蓝牙 SIG 称,5.1 的定位精度可达厘米级(目前 1 到 10 米),在室内导航、快速找寻手环/遥控板等情景,将发挥重要作用。 其它特性还有优化的 GATT(通用属性配置文件),提高配对和通信速度;有助于避免数据包冲突的随机信道索引确保蓝牙广告抵达率等。...阅读全文
WireGuard.com 安装页面以获取设置详细信息。 WireGuard 是一个 VPN 内核实现,代码行数少,优先考虑性能,配置简单,试图在做到配置简单的同时提供高性能。WireGuard 基于 UDP,数据包在一端加密之后封装在 UDP 包内发送到远程端点,然后解密。...阅读全文
田全球各地员工机器、网络相关的数据,而这些数据清楚表明了本田内部在使用哪家端点安全供应商,哪些设备在使用最新的安全防护软件,哪些设备依旧在运行旧版操作系统。 此外,这些数据包含了清楚的标记,可以非常容易地识别出 CEO、CFO 以及 CSO 等级别对应的电脑,本田 CEO 的完整电子邮件、全名、MAC 位置、Windows 操作系统版本、IP 及设备类型均可查到,甚至一些字符提供的信息与本田在日本的办事处位置相对应。 在研究人员提交该漏洞后,本田方面迅速封闭了该漏洞,并回复称:“非常感谢您指出漏洞。您发现的安全问题可能允许外部各方访问本田的一些基于云的数据,这些数据包括与员工及其计算机相关的信息。我们调查了系统的访问日志,发现没有任何第三方下载数据的迹象。目前,没有证据表明数据泄露,不包括您...阅读全文
动态主机配置协议(DHCP)是一种用于使主机能够从服务器自动分配 IP 地址和相关的网络配置的网络协议。DHCP 服务器分配给 DHCP 客户端的 IP 地址处于“租用”状态,租用时间通常取决于客户端计算机要求连接的时间或 DHCP 服务器配置的时间。 DHCP 如何工作? 以下是 DHCP 实际工作原理的简要说明: 一旦客户端(配置为使用 DHCP 的机器)连接到网络后,它会向 DHCP 服务器发送DHCPDISCOVER数据包。 当 DHCP 服务器收到DHCPDISCOVER请求报文后会使用DHCPOFFER包进行回复。 然后客户端获取到DHCPOFFER数据包,并向服务器发送一个DHCPREQUEST包,表示它已准备好接收DHCPOFFER包中提供的网络配置信息。 最后,DHCP...阅读全文
当上世纪九十年代互联网开始被广泛使用的时候,其大部分的通讯只使用几个协议:IPv4 协议路由这些数据包,TCP 协议转发这些包到连接上,SSL(及后来的 TLS)协议加密连接,DNS 协议命名那些所要连接的主机,而 HTTP 协议是最常用的应用程序协议。 多年以来,这些核心的互联网协议的变化几乎是微乎其微的;HTTP 增加了几个新的报文头和请求方式,TLS 缓慢地进行了一点小修改,TCP 调整了拥塞控制,而 DNS 引入了像 DNSSEC 这样的特性。这些协议看起来很长时间都一成不变(除了已经引起网络运营商们的大量关注的 IPv6)。 因此,希望了解(甚至有时控制)互联网的网络运营商、供应商和决策者对这些协议采用的做法是基于其原有工作方式 —— 无论是打算调试问题,提高服务质量,或施加政策...阅读全文
libgraph 的参照对象。因为 VPP 项目整体是一个非常全面的解决方案,从中剥离核心的设计框架为其它轻量级项目所用就变得很有意义。这也是 Libgraph 的产生背景。虽然它目前还是DPDK 中相对比较新的 lib,但是其优秀的设计思想还是值得学习参考。 下面将首先介绍 libgraph 架构的核心概念:标量和向量包处理(scalar vs vector packet processing)以及它们之间的区别。然后再介绍 libgraph 中的核心组件,以及它们之间的联系和交互方式。最后,我们将介绍 libgraph 的具体用例以及优缺点。 背景 DPDK libgraph 是一个向量包处理的框架。与传统的标量包处理模型(一系列函数负责处理一个数据包,重复直到所有数据包处理完毕)相比,向量数据包处理...阅读全文
<> (#19569)csharp 在 UTF8 编码/解码期间删除 byte[] 分配 (#19511)csharp:删除 AuthContext 的 Lazy 用法 (#19533)csharp 避免 HandleNewServerRpc=>HandleCallAsync 中的 capture-context (#19526)确保 Grpc 元数据包包含 Grpc.Core.targets (#19449) Objective-C ObjC 实验支持 Bazel 构建 (#19621)实现全局拦截器 (#19322) PHP PHP:修复 channel::constructor() 中缺少的 addref (#19737) Python 在迭代之前检查 call.trailing_metadata...阅读全文
输数据,在不使用的情况下默认不会传输任何 UDP 数据包,所以比常规VPN省电很多,可以像ShadowSocks一样一直挂着使用。 WireGuard协议的速度几乎秒杀其它VPN协议,测试结果如下图; WireGuard 受到 Linus 本人的推荐,将整合到最新版Linux Kernel中,安装部署更方便。WireGuard 总共几千行代码,只需十分钟就能搞定一台WireGuard服务器。 Wireguard安全性高。极佳的VPN漫游特性,设备支持广泛。内核级别的端对端隧道加密技术,拥有良好的加密特性。Wireguard配置文件由两部分组成:interface和peer。服务器端、客户端互为平等关系。支持预共享密钥preshared key加密,防止量子计算攻击。 国际著名项目,开源代码审...阅读全文
识别码。 Windows用户同样可以使用微代码来完成更新,但是这些针对Windows的微代码补丁得等到微软首先完成测试之后才会正式发布。 在Linux中使用新版本的微代码数据文件 对于Linux用户来说,可以轻松地使用新版本的微代码数据来更新Linux发行版,因为这些微代码文件一般都是以系统更新的形式推送给用户的。为了安装新版本的微代码补丁,最好的方法就是使用Linux发行版自带的Package管理器来完成安装。 对于Debian和Ubuntu发行版的用户来说,可以使用apt命令来安装Intel的微代码数据包。除了更新补丁之外,Package管理器还会安装例如iucode-toll之类的其他依赖组件。Redhat以及CentOS用户还可以使用yum并搜索microcode_ctl来完成更新...阅读全文
近日,Facebook 开源了一套解决重要计算集群管理问题的 Linux 内核组件和相关工具,这些项目覆盖了资源控制、资源利用、工作负载隔离、负载均衡、测量和监控等方面:BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomd。 Facebook 表示这些项目现在已大规模用于其所有基础设施生产环境中,并用于其它许多企业组织的环境中。 BPF:https://facebookmicrosites.github.io/bpf/ BPF 是 Linux 内核中一种高度灵活、高效率的代码执行引擎,可以让字节码在各个 hook 点运行,以使用自定义代码。虽然 BPF 已广泛用于数据包过滤,但是 BPF 的指令集具有很强的通用性和灵活性,足以支持和允许除网络之外的众多使用场合,比如跟踪和...阅读全文
Viljoen在其中介绍了Netronome SmartNIC上每个FPC每秒达到300万个数据包,每个SmartNIC有72到120个FPC,可能最大支持eBPF吞吐量4.3 Tbps!(理论上) eBPF 触发了新一代网络、安全性、应用程序配置/跟踪和性能故障排除等领域的工具开发,这些工具不再依赖现有的内核功能,而是在不影响执行效率或安全性的情况下主动重新编程运行时行为。 那我们看看有哪些基于 eBPF 的工程,这些工程或许你已经知道,或是已经经常使用。 基于eBPF的项目 1:bcc BCC是用于创建基于eBPF的高效内核跟踪和操作程序的工具包,其中包括一些有用的命令行工具和示例。 BCC简化了用C进行内核检测的eBPF程序的编写,包括LLVM的包装器以及Python和Lua的前端。它还提供了用于...阅读全文
PROGRAM DEV SENT RECEIVED 7690 carla /usr/lib/firefox wlan0 12.494 556.580 KB/sec 5648 carla .../chromium-browser wlan0 0.052 0.038 KB/sec TOTAL 12.546 556.618 KB/sec Nethogs 选项很少:在 kb/s、kb、b 和 mb 之间循环;通过接收或发送的数据包进行排序;并调整刷新之间的延迟。请参阅 man nethogs,或者运行 nethogs -h。 vnstat vnstat 是最容易使用的网络数据收集器。它是轻量级的,不需要 root 权限。它作为守护进程运行,并记录你网络统计信息。它默认显示所有的网络接口。使用 -i 选项选择单个...阅读全文
hstore等。 对于需要安全认证方法的应用,PostgreSQL 13 允许客户端在使用 SCRAM 身份认证时要求通道绑定,并且 PostgreSQL 外部数据包装器(postgres_fdw)现在可以使用基于证书的认证。详情请查看发布公告。 下载地址:https://www.postgresql.org/download/...阅读全文
客 01-28 1万+ 一、deb包详解 1->deb 包的文件结构 deb 软件包里面的结构:它具有DEBIAN和软件具体安装目录(如etc, usr, opt, tmp等)。 deb包本身有三部分组成 组成 详细 数据包 包含实际安装的程序数据,文件名为“data.tar.XXX” 安装信息及控制包 包含deb的安装说明,标识,脚本等,文件名为“control.tar.gz” ... [教程] iOS设备上修改deb解包打包 教程 六桥风月IT随笔 05-26 1万+ 1,首先你需要安装终端。并需要一个源依赖(说白了就是安装命令终端) 2,开始(我们从最简单学起) 3,我们以ChargingHelper.deb (充电助手)为例子,你可以命名为abc.deb方便等下命令操作。 4...阅读全文
的 IP 报头允许终端用户指定要在数据包上执行的自定义功能。 文章以智能家居为例,描述了新 IP 网络下的应用场景: 运动传感器检测出房间出现异常活动时,会通知相应房间的安全摄像头通过智能家居网络采集信息,然后,安全摄像头将收集到的图像信息通过互联网发送到主人的智能手机上进行判断。如果只是误报,主人可以向安全摄像头发送信息要求停止信息收集。由于房子里的所有设备都连接在同一个家庭网络上,所以运动传感器可以直接将通知发送到安全摄像头,并带有它的域内地址;并且由于新的 IP 协议向源地址中添加了一个地址段(4.3.2.1),摄像头数据能够直接传送至用户的智能手机中。 不难看出,在该场景中,新 IP与传统 IP 相比有两方面优势:一是智能家居网络采用短地址空间进行批量通信,减少了分组开销,提高了通信...阅读全文
子系统(即资源控制器) 1 2 3 4 5 6 7 8 root@lxkaka-server:~# lssubsys cpuset # 分配单独的 cpu 节点或者内存节点 cpu,cpuacct # 限制进程的 cpu 使用率;cpu 使用统计 blkio # 限制进程的块设备 io memory # 限制进程的 memory 使用量 devices # 控制进程能够访问某些设备 freezer # 挂起或者恢复 cgroups 中的进程。 net_cls,net_prio # 可以标记 cgroups 中进程的网络数据包,对数据包进行控制 hierarch 层级关系 由一系列控制组以一个树状结构排列而成,hierarch 通过绑定对应的子系统进行资源调度。hierarch 中的...阅读全文
性: 服务发现: 支持 DNS 与 RPC 服务发现,也提供原生 SDK 、OpenAPI 等多种服务注册方式和 DNS、HTTP 与 API 等多种服务发现方式。 服务健康监测: Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。 动态配置服务: Nacos 提供配置统一管理功能,能够帮助我们将配置以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 动态 DNS 服务: Nacos 支持动态 DNS 服务权重路由,能够让我们很容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务。 服务及其元数据管理: Nacos 支持从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静...阅读全文
过 iptables 实现 IP 端口数据包转发服务配置关于 NAT VPS 的使用说明NAT VPS 的正确食用方式NAT VPS 主机端口转发(流量中转)教程国内中转高性价比方案:NAT VPS + iptables 端口流量转发通过国内服务器转发流量Ubuntu UFW 防火墙设置Setup a Shadowsocks relay在 Azure 搭建 ShadowSocks 国内跳板,并开启 UDP 转发UFW Essentials: Common Firewall Rules and CommandsHow To Setup a Firewall with UFW on an Ubuntu and Debian Cloud ServerConfigure Uncomplicated...阅读全文
Cygwin,而且一开始很难理解其报告。Samhain日志默认情况下位于/ var / log ,默认情况下用于XML编写(使用./configure –enable–xml-log 命令对其进行配置)。Samhain包括日志文件旋转和锁定功能。它有助于记录SQL数据库,控制台,电子邮件,系统日志,Prelude IDS等。5.安全洋葱Security Onion是由Doug Burks设计和维护的基于Linux的免费开源入侵检测系统。该项目由三个组件组成:完整的数据包捕获功能,将基于主机的事件与基于网络的事件相关联的入侵检测系统,以及许多其他工具集,包括Snort,Bro,Sguil,Suricata和许多其他实用程序。安全洋葱不只是入侵检测系统。归根结底,如果您想在几分钟之内轻松地建立网络安全监控...阅读全文
packet 为单位(默认64K),A 收到一个 packet 就会传给 B,B 传给 C。A 每传一个 packet 会放入一个应答队列等待应答; 数据被分割成一个个 packet 数据包在 pipeline 上依次传输,在 pipeline 反方向上, 逐个发送 ack(命令正确应答),最终由 pipeline 中第一个 DataNode 节点 A 将 pipelineack 发送给 Client; 当一个 block 传输完成之后,Client 再次请求 NameNode 上传第二个 block,重复步骤 2; 7.1 网络拓扑概念 在本地网络中,两个节点被称为“彼此近邻”是什么意思?在海量数据处理中,其主要限制因素是节点之间数据的传输速率——带宽很稀缺。这里的想法是将两个节点间的带宽作为距离的...阅读全文
版本中,当 JFR 功能被打开,JVM 能以非常小的性能开销记录 Java 运行过程中产生的各种运行时数据。产生的 JFR 数据包含 JVM 运行时的各种微观细节,可以被 JMC(Java Mission Control) 进行分析。JMC 是一个桌面应用程序,通过解析 JFR 数据,JMC 能够高效快速定位线上产品环境的各种故障,分析内存分配热点,方法调用热点,方法调用超时分析,内存泄漏,IO 活动,线程活动等,帮助 Java 用户保证服务稳定。 据了解,阿里巴巴日常开发过程中遇到的很多问题都是通过 JFR 得到解决的,可以说是 Java 故障诊断利器。如上所言,JFR 功能在 OpenJDK 11 以及以上版本才有,但是在阿里巴巴的推动努力下,JFR 功能已经被 OpenJDK 8u 社...阅读全文
出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。 1.1.1集中化的版本控制系统,代表Svn 缺点: 1、依赖中央服务器。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 2、如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 3、整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险 4、必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,效率就很低了。 1.1.2分布式版本控制系统,代表Git...阅读全文
URI 的超链接及简短说明。因为部分浏览器不能识别307响应,因此需要添加上述必要信息以便用户能够理解并向新的 URI 发出访问请求。 如果这不是一个GET 或者 HEAD 请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。 4xx 请求错误 这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。除非响应的是一个 HEAD 请求,否则服务器就应该返回一个解释当前错误状况的实体,以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。 如果错误发生时客户端正在传送数据,那么使用TCP的服务器实现应当仔细确保在关闭客户端与服务器之间的连接之前,客户端已经收到了包含错误信息的数据包。如果客户...阅读全文
配置文件: { "cniVersion": "0.3.1", "name": "bridge", "type": "bridge", "bridge": "cnio0", "isGateway": true, "ipMasq": true, "ipam": { "type": "host-local", "ranges": [ [{"subnet": "${POD_CIDR}"}] ], "routes": [{"dst": "0.0.0.0/0"}] } } CNI 插件还会通过 CNI_ARGS 环境变量为 Pod 指定其他的元数据,包括 Pod 名称和命名空间。 下面的步骤因 CNI 插件而异,我们以 bridge 插件举例: 该插件首先会在根网络命名空间(也就是宿主机的网络命名空间...阅读全文