在写后台代码时,避免不了需要与其他第三方接口交互,如向服务号下发模板消息,有时可能需要下发超过 10 万条。这时不得不考虑使用异步和「多线程」的网络请求。 今天向 PHP 工程师们推荐一个 Guzzle 插件。 Guzzle Guzzle 是一个 PHP 的 HTTP 客户端,用来轻而易举地发送请求,并集成到我们的 WEB 服务上。 接口简单:构建查询语句、POST 请求、分流上传下载大文件、使用
带外数据即简称OOB(out-of-band) 带外数据是流式套接字独有的。当出现紧急情况时,无法立即通知接收进程。带外数据正用于解决这一问题。带外数据在正常的数据流之外发送,其效果相当于越过套接字上所有等待数据。当它到达接收进程时,接收进程会收到一个信号,从而进程可以立即处理这个数据。 带外数据的发送 比较简单,只需用MSG_OOB标志调用[[send()|send]]即可 带外数据的接收 有两
因特网程序使用inet_aton、inet_addr(已废弃)和inet_ntoa函数实现IP地址和点分十进制串之间的转换。 函数原型 #include <arpa/inet.h> /*将一个点分十进制串转换位网络字节顺序的IP地址,字符串有效返回1,否则为0*/ int inet_aton(const char *cp,struct in_addr *inp); /*若字符串有效则返回32位二进
CORE https://github.com/coreemu/core IMUNES https://github.com/imunes/imunes Cloonix http://virtual-network-kvm.net/ Mininet http://mininet.org/ Mininet-WiFi http://www.ramonfontes.com/mininet-wifi/ V
Linux网络常用工具介绍。
流量控制(Traffic Control, tc)是Linux内核提供的流量限速、整形和策略控制机制。它以qdisc-class-filter的树形结构来实现对流量的分层控制 : tc最佳的参考就是Linux Traffic Control HOWTO,详细介绍了tc的原理和使用方法。 基本组成 从上图中可以看到,tc由qdisc、fitler和class三部分组成: qdisc通过队列将数据包缓
lvs Linux Virtual Server (lvs) 是Linux内核自带的负载均衡器,也是目前性能最好的软件负载均衡器之一。lvs包括ipvs内核模块和ipvsadm用户空间命令行工具两部分。 在lvs中,节点分为Director Server和Real Server两个角色,其中Director Server是负载均衡器所在节点,而Real Server则是后端服务节点。当用户的请求到
技术名称 支持者 支持方式 网络虚拟化方式 数据新增报文长度 链路HASH能力 VXLAN Cisco/VMWARE/Citrix/Red Hat/Broadcom L2 over UDP VXLAN报头 24 bit VNI 50Byte(+原数据) 现有网络可进行L2 ~ L4 HASH NVGRE HP/Microsoft/Broadcom/Dell/Intel L2 over GRE NV
LAN 表示 Local Area Network,本地局域网,通常使用 Hub 和 Switch 来连接 LAN 中的计算机。 一个 LAN 表示一个广播域,它的意思是 LAN 中的所有成员都会收到 LAN 中一个成员发出的广播包。 因此,LAN 的边界在路由器或者类似的三层设备。 VLAN 表示 Virtual LAN。一个带有 VLAN 功能的 Switch 能够同时处于多个 LAN 中。简
TCP的特性 TCP提供面向连接的、可靠的字节流服务 上层应用数据被TCP分割为TCP认为合适的报文段 TCP使用超时重传机制,而接收到一个TCP数据后需要发送一个确认 TCP使用包含了首部和数据的校验和来检查数据是否在传输过程中发生了差错 TCP可以将失序的报文重新排序 TCP连接的每一端都有固定大小的缓冲区,只允许另一端发送发送接收缓冲区所能接纳的数据 TCP提供面向字节流的服务,不在字节流中
UDP是一种对象数据报的传输层协议,它不提供可靠性,其数据报被封装在IP数据报中,封装格式如下图所示: 首部格式为 源端口号和目的端口号分表表示了发送进程和接收进程 UDP长度字段包括了UDP首部和UDP数据的字节长度 UDP检验和覆盖了UDP首部和UDP数据(IP首部检验和只覆盖了IP首部,不覆盖数据报中的任何数据) UDP数据报的长度可以为奇数字节,但是检验和算法是把若干个16bit字相加。解
ICMP协议格式 ICMP报文是在IP数据报内部传输的:| IP头部 | ICMP报文 | ICMP报文格式 Bits 0–7 8–15 16–23 24–31 0 Type Code Checksum 32 Rest of Header Type – ICMP type as specified below. Cod
链路层通信根据48bit以太网地址(硬件地址)来确定目的接口,而地址解析协议负责32bit IP地址与48bit以太网地址之间的映射: (1)ARP负责将IP地址映射到对应的硬件地址 (2)RARP负责相反的过程,通常用于无盘系统。 ARP高速缓存 ARP高效运行的关键是每台主机上都有一个ARP高速缓存,缓存中每一项的生存时间一般为20分钟,但不完整表项超时时间一般为3分钟(如192.168.13
使用坐标下降实现 Lasso 和 Elastic Net (弹性网络)(L1和L2罚项)。 回归系数可以被强制设定为正。 from itertools import cycle import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import lasso_path, enet_path
下面是一些Mac OSX下常用的网络诊断命令。它们能帮助我们发现网络问题。文中提到的协议和网络通信原理,可参考协议森林。 有些工具,如arping, arp-scan,需要借助HomeBrew安装。 基本工具 网络诊断的第一步,是了解自己的设备,比如有哪些接口,IP地址都是什么。 ifconfig 显示网络接口(interface)信息。如接口名称,接口类型,接口的IP地址,硬件的MAC地址等。