redwingz的留言板

个人专区 > sinat_20184565 [问题点数:0分]
等级
本版专家分:0
结帖率 0%
redwingz

等级:

网络设备驱动发送锁

在协议栈上层提交报文到设备驱动时,内核使用发送锁锁住驱动的报文发送函数netdev_start_xmit,或者其封装函数dev_hard_start_xmit,如下为函数dev_direct_xmit中的调用。 int dev_direct_xmit(struct sk_buff *skb,...

IPVS的OPS调度

如下ipvsadm配置命令: # ipvsadm -A -t 207.175.44.110:80 -s rr --ops OPS是One-Packet Scheduling的缩写,即单一报文调度。仅应用于UDP协议的虚拟服务,或者是标记UDP报文的防火墙fwmark配置,每个连接仅执行一...

Neutron 安全组 API

Neutron安全组API Wiki地址:https://wiki.openstack.org/wiki/Neutron/SecurityGroups API扩展 API扩展时代码的"前端"部分,其处理整个工程使用的REST-ful API的定义。 REST-ful API: ...

IPVS之Bypass转发模式

不同于NAT/DR/Tunnel转发模式,bypass模式不能够通过ipvsadm命令行显示的指定,而是在调度失败之后,可能进入的一种转发模式,由内核自动决定。 对于UDP、TCP和SCTP协议,在调度过程中,如果连接创建失败,例如由于...

SWAN之ikev2协议dynamic-two-peers配置测试

本测试中,carol与dave主机以及moon网关都使用动态IP地址配置,远程用户carol和dave在配置文件中的right字段指定网关的域名。moon网关建立两个连接,分别制定carol和dave的域名,在moon网关的文件/etc/hosts中保存...

TCP-Reno拥塞算法

经典的Reno算法实现了三个拥塞函数,如下所示: struct tcp_congestion_ops tcp_reno = { .flags = TCP_CONG_NON_RESTRICTED, .name = "reno", .owner = THIS_MODULE, .ssthresh = tcp_reno_ssthresh, ...

TCP客户端端口号选择

如下函数inet_hash_connect,如果没有指定绑定的接口,在发起连接的时候,由函数inet_sk_port_offset先选择一个端口偏移量(port_offset),函数__inet_hash_connect负责绑定端口。 int inet_hash_connect(struct ...

TCP监听端口选择

内核提供了两个PROC文件可以控制套接口使用的端口号范围,其中文件ipv4_local_port_range定义了可使用的端口范围;文件ip_local_reserved_ports定义了保留的端口范围。 ... { .procname = "ip_local_port_range", ...

TCP-Westwood拥塞算法

TCP-Westwood在TCP-Reno的基础上增强了窗口控制和退避处理,例如,TCPW发送端监控ACK报文的接收速率,进而估算当前连接可达到的数据发送速率(可用带宽)。当发送端检测到丢包时(超时或者3个重复ACK),发送端根据...

测试DPDK示例程序l3fwd

测试环境 操作系统: Ubuntu 20.04 LTS; 处理器为: Intel® Core™ i7-4790K CPU @ 4.00GHz。 网卡使用的是Intel的I210千兆网卡。 DPDK版本19.02。 测试拓扑: |----------------| | Ubuntu(DPDK) | ...

H-TCP拥塞算法

根据对AIMD拥塞算法的观察,对于传统网络,增加值α应当足够小,以便于同传统TCP拥塞算法(Reno/NewReno)相兼容;而对于高速和长距离(high-speed and long distance)网络,可增大α的值,以便获取额外的带宽。...

DPDK示例l3fwd性能测试

测试环境 CPU: Intel® Xeon® Gold 5122 CPU @ 3.60GHz Cache: 16896 KB Memory: 16G X710 driver: i40e-2.11.29 X710 expansion-rom-version: 4.53 0x80001cdf 0.0.0 DPDK: dpdk-20.05 BIOS设置 ...

DPDK下X710网卡丢包

环境 - 处理器:Intel® Xeon® Gold 5122 CPU @ 3.60GHz 4核8线程 DPDK: v20.05 测试: 4对接口双向对打流量,报文长度1518字节。 发现有接口丢包,打印出来接口的统计信息,其中rte_eth_stats->...

TCP-Hybla拥塞算法

TCP Hybla算法的改进是对于RTT较长的连接(例如卫星和无线网络)可获得与参考TCP连接(如,有线网络)相同的瞬时发送速率B(t)。TCP的发送速率计算如下(W(t)表示t时刻的发送窗口值): B(t)=W(t)/RTT(1) ...

DPDK-l3fwd示例IPv6测试

测试环境 操作系统: Ubuntu 20.04 LTS; 处理器为: Intel® Core™ i7-4790K CPU @ 4.00GHz。 网卡使用的是Intel的X710万兆网卡。 DPDK版本19.02。 测试拓扑: |----------------| | Ubuntu(DPDK) | ...

Linux公平队列FQ配置

FQ (Fair Queue)是一个无类别(classless)的报文调度器,其主意用于本地产生的流量。设计为控制每个流的发送节奏(pacing)。FQ完成流的区分,并且可完成TCP层要求的发送节奏。所有的属于一个套接口的报文认为属于...

RED队列tc设置

如下tc命令配置RED(Random Early Detection)队列。 $ sudo tc qdisc add dev ens40 root red limit 400000 min 30000 max 100000 avpkt 1000 probability 0.02 burst 55 ecn adaptive harddrop bandwidth 1000Mbit ...

DPDK基础库LPM

DPDK中LPM(Longest Prefix Match)的实现,使用了DIR-24-8算法的一个变种,实际上就是用空间换时间。其由一个224大小的表,和256(RTE_LPM_TBL8_NUM_GROUPS)个大小为28的表组成。前者叫做tbl24,可使用IP地址的前...

SFB队列

SFB(Stochastic Fair Blue)是一个FIFO类型的队列算法,基于类似于BLUE算法的记账机制,来标识非响应性质的流,并且限制其速率(这类流不处理ECN或者丢包事件)。SFB的记账系统由L*N个桶(bin)组成,其中L表示级别,N...

RED队列

RED(Random Early Detection)算法旨在将队列的平均长度保持在较低的值,同时,允许一定量的突发报文。在发生拥塞期间,RED以一定的概率通知(丢包或者ECN机制)某个连接减低窗口值,此概率大致上与该连接占用的带宽...

内核文件句柄数量

涉及三个文件file-max,file-nr和nr-open。 file-max file-max定义了Linux内核可分配的最大数量的文件句柄,当检测到文件句柄耗尽时,需要增加file-max值。 / # cat /proc/sys/fs/file-max 1597700 ...

邻居表项的delay_probe_time时长

delay_probe_time控制首次发送邻居请求报文的等待时长,对于arp协议,内核默认的delay_probe_time时长为5秒钟。 struct neigh_table arp_tbl = { .family = AF_INET, .key_len = 4, .protocol = cpu_to_be16(ETH_...

RED硬件卸载支持

在RED参数处理的最后,调用red_offload设置RED卸载功能。 static int red_change(struct Qdisc *sch, struct nlattr *opt, struct netlink_ext_ack *extack) { struct Qdisc *old_child = NULL, *child = NULL;...

Linux内核RED队列实现

关于RED队列的TC配置命令,参见:RED队列tc设置。 1 RED入队列 首先计算平均队列长度qavg,参见之后函数red_calc_qavg的介绍。如果队列处于空闲状态,退出空闲状态,清空空闲开始时间戳。 static int red_enqueue...

Linux内核Adaptive-RED实现

ARED在RED的基础上实现了最大报文标记概率max_P的自动调整,以便将平均队列长度控制在目标区间内。 1 ARED初始化 在RED初始化函数red_init中,设置ARED定时器adapt_timer用于定期执行ARED算法,定时处理函数为red_...

X710网卡接收丢包

通过ethtool命令看到是rx_dropped一项有数值。 / # ethtool -S eth0 | more NIC statistics: rx_packets: 88037562 tx_packets: 66028257 rx_bytes: 7461153935 tx_bytes: 5612351710 rx_errors: 0 ...

邻居表项的STALE状态超时时间

对于arp协议,内核默认的STALE状态超时时长为60秒钟。 struct neigh_table arp_tbl = { .family = AF_INET, .key_len = 4, .protocol = cpu_to_be16(ETH_P_IP), ... .id = "arp_cache", .parms = { ...

rtnetlink消息解析遇到的问题记录

折腾了两天一个解析rtnetlink消息的程序,总是莫名其妙的crash,最终发现是rtattr数组定的时候忘记了加一。之后,查看了一下iproute2中的代码,如下解析IP地址的函数,rta_tb数组的个数为:IFA_MAX+1,进行了加一...

Max-Min公平性

Max-Min公平性由Hayden在文章(Round-Robin Scheduling for Max-Min Fairness in Data Networks)中提出,旨在评估队列调度机制的公平性。 This section describes the max-min flow criterion, our definition of ...

按位实现的队列轮询算法

由于Nagle所提出的队列轮询算法,实际上是以报文为单位进行公平轮询,进而发送报文,但是没有考虑报文大小不同带来的不公平性,导致使用大报文的连接占用较多的网络带宽。来看一下为解决此问题,理想的按照比特位为...

相关热词 c#线程池类 c#如何遍历容器 c#16进制加法 c#事件订 c# linq xml c# udp 多个客户端 c# 程序应注意事项 c# json 接口开发 c# 按行txt c#怎么扫条形码