Linux-内核网络教程-八-

341 阅读41分钟

Linux 内核网络教程(八)

原文:Linux kernel networking

协议:CC BY-NC-SA 4.0

十七、附录 B:网络管理

本附录回顾了一些最流行的网络管理和调试工具。这些工具在寻找常见问题的解决方案以及开发、调试、基准测试、分析、故障排除和研究网络项目方面帮助很大。这些工具中的大多数都有非常好的文档资源,或者是手册页,或者是 wiki 页,互联网上还有很多关于它们的其他信息资源。他们中的许多人都有活跃的邮件列表(针对用户和开发人员)和错误报告系统。这里描述了一些最常用的工具,具体说明了它们的用途和相关链接,并附有几个例子。本附录中提到的工具按字母顺序排列。

arp

该命令用于 ARP 表管理。用法示例:

您可以通过从命令行运行arp来显示 ARP 表。arp –n将显示没有名称解析的 ARP 表。

您可以通过以下方式向 ARP 表添加静态条目:

arp –s 192.168.2.10 00:e0:4c:11:22:33

arp实用程序属于net-tools包。网址:http://net-tools.sourceforge.net

解析

发送 ARP 请求的实用程序。–D标志用于重复地址检测(DAD)。arping实用程序属于iputils包。网址:http://www.skbuff.net/iputils/

可接受

一个用户空间工具,用于为基于 Linux 的 ARP 规则防火墙配置规则。网址:http://ebtables.sourceforge.net/

arpwatch

一个用于监控 ARP 流量的用户空间工具。网址:http://ee.lbl.gov/

ApacheBench (ab)

用于测量 HTTP web 服务器性能的命令行实用程序。ApacheBench 工具是 Apache 开源项目的一部分。在许多发行版中(例如 Ubuntu ),它是apache2-utils包的一部分。用法示例:

ab -n 100  http://www.google.com/

-n选项是为基准测试会话执行的请求数量。

brctl

用于管理以太网网桥的命令行实用程序,支持网桥配置的设置。brctl实用程序属于bridge-utils包。用法示例:

  • brctl addbr mybr:添加一个名为mybr的桥。
  • brctl delbr mybr:删除名为mybr的桥。
  • brctl addif mybr eth1:添加eth1接口到桥上。
  • brctl delif mybr eth1:从桥上删除eth1接口。
  • brctl show:显示网桥及其连接端口的信息。

这个bridge-utils包的维护者是 Stephen Hemminger。获取git存储库可以通过以下方式完成:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git

网址:http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge

连接跟踪工具

一组用于管理 netfilter 连接跟踪的用户空间工具。它由一个用户空间守护进程conntrackd和一个命令行工具conntrack组成。网址:http://conntrack-tools.netfilter.org/

crtools

用于进程检查点/恢复的实用程序。网址:http://criu.org/Installation

ebtables

一个用户空间工具,用于为基于 Linux 的桥接防火墙配置规则。网址:http://ebtables.sourceforge.net/

以太尾流

一个实用程序发送唤醒局域网魔术包。ether-wake实用程序属于net-tools包。

ethtool实用程序提供了一种查询或控制网络驱动程序和硬件设置、获取统计数据、获取诊断信息等的方法。使用ethtool您可以控制以太网设备的参数,如速度、双工、自动协商和流量控制。ethtool的许多特性需要网络驱动程序代码的支持。

示例:

  • ethtool eth0:的输出

    Settings for eth0:
            Supported ports: [ TP MII ]
            Supported link modes:   10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Half 1000baseT/Full
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full
                                    100baseT/Half 100baseT/Full
                                    1000baseT/Half 1000baseT/Full
            Advertised pause frame use: Symmetric Receive-only
            Advertised auto-negotiation: Yes
            Speed: 10Mb/s
            Duplex: Half
            Port: MII
            PHYAD: 0
            Transceiver: internal
            Auto-negotiation: on
            Supports Wake-on: pumbg
            Wake-on: g
            Current message level: 0x00000033 (51)
                                   drv probe ifdown ifup
            Link detected: no
    
    
  • 获取卸载参数由:ethtool –k eth1完成。

  • 卸载参数的设置由ethtool –K eth1 offLoadParamater完成。

  • 通过ethtool -i eth1向网络设备查询相关的驱动程序信息。

  • 显示统计数据是由:ethtool -S eth1完成的(注意,并不是所有的网络设备驱动程序都实现了这个特性)。

  • 显示永久硬件(MAC)地址:ethtool -P eth0

通过向netdev邮件列表发送补丁来完成ethtool的开发。撰写本文时,ethtool的维护者是本·休金斯。ethtool项目是在git存储库上开发的。可以通过:git clone git://git.kernel.org/pub/scm/network/ethtool/ethtool.git下载。

网址:www.kernel.org/pub/software/network/ethtool/

由 Linus Torvalds 发起的分布式版本控制系统。Linux 内核开发,以及很多 Linux 相关的项目都是由git管理的。也可以使用git send-email命令通过邮件发送补丁。网站:??。

hciconfig

用于配置蓝牙设备的命令行工具。使用hciconfig,您可以显示蓝牙接口类型(BR/EDR 或 AMP)、蓝牙地址、标志等信息。hciconfig工具属于bluez包。示例:

hciconfig
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:02:72:AA:FB:94  ACL MTU: 1021:7  SCO MTU: 64:1
        UP RUNNING PSCAN
        RX bytes:964 acl:0 sco:0 events:41 errors:0
        TX bytes:903 acl:0 sco:0 commands:41 errors:0

网址:http://www.bluez.org/

hcidump

一个命令行实用程序,用于转储来自和去往蓝牙设备的原始 HCI 数据。hcidump实用程序属于bluez-hcidump包。网址:http://www.bluez.org/

六氯苯酚

一个命令行实用程序,用于配置蓝牙连接和向蓝牙设备发送一些特殊命令。例如,您可以通过hcitool scan扫描附近的蓝牙设备。hcitool实用程序属于bluez-hcidump包。

ifconifg

ifconfig命令允许您配置各种网络接口参数,包括设备的 IP 地址、MTU、MAC 地址、Tx 队列长度(txqueuelen)、标志等等。ifconfig工具属于net-tools包,它比iproute2包更老(将在本附录后面讨论)。下面是三个用法示例:

  • ifconfig eth0 mtu 1300:将 MTU 改为 1300。
  • ifconfig eth0 txqueuelen 1100:将发送队列长度改为 1100。
  • ifconfig eth0 –arp:禁用eth0上的 ARP 协议。

网址:http://net-tools.sourceforge.net

ifnslave

用于将从属网络设备连接到绑定设备和从绑定设备分离的实用程序。绑定是将多个物理以太网设备放入一个逻辑设备中,这通常被称为链路聚合/中继/链路捆绑。源文件在Documentation/networking/ifenslave.c里。例如,您可以通过以下方式将eth0连接到焊接设备bond0:

ifenslave bond0 eth0

ifenslave实用程序属于iputils包,由 Yoshifuji Hideaki 维护。网址:www.skbuff.net/iputils/

iperf

iperf项目是一个开源项目,它提供了一个基准测试工具来测量 TCP 和 UDP 带宽性能。它允许您调整各种参数。iperf工具报告带宽、延迟抖动和数据报丢失。它最初是由应用网络研究国家实验室的分布式应用支持小组(DAST)用 C++开发的。它以客户机-服务器模式工作。从零开始的一个新实现iperf3,不向后兼容原来的iperf,可从https://code.google.com/p/iperf/获得。据说iperf3有一个更简单的代码库。iperf3工具还可以报告客户机和服务器的平均 CPU 利用率。

使用 iperf

下面是一个使用iperf测量 TCP 性能的简单例子。在一台设备(IP 地址为 192.168.2.104)上,运行下一个命令,启动服务器端(默认情况下,它是端口 5001 上的 TCP 套接字):

iperf -s

在第二台设备上,运行iperf TCP 客户端以连接到iperf服务器:

iperf -c 192.168.2.104

在客户端,您将看到以下内容:

------------------------------------------------------------
Client connecting to 192.168.2.104, TCP port 5001
TCP window size: 22.9 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.200 port 35146 connected with 192.168.2.104 port 5001

默认时间间隔是 10 秒。10 秒钟后,客户端将断开连接,您将在终端上看到如下消息:

[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.3 sec  7.62 MBytes  6.20 Mbits/sec

您可以调整iperf的许多参数,例如:

  • –u:用于使用 UDP 套接字。
  • -t:使用不同的时间间隔,以秒为单位,而不是默认的 10 秒。
  • -T:设置组播的 TTL(默认为 1)。
  • -B:绑定到主机、接口或组播地址。

参见man iperf。网址:http://iperf.sourceforge.net/

iproute2

iproute2包为用户空间和内核网络子系统之间的交互提供了许多工具。最广为人知的是ip命令。它基于 netlink 套接字(在第二章的中讨论)。使用ip命令,你可以在广泛的网络区域进行各种操作,它有无数的选项;参见man 8 ip。以下是几个使用ip命令完成各种任务的例子:

  • 使用ip addr配置网络设备:

  • ip addr add 192.168.0.10/24 dev eth0:在eth0上设置一个 IP 地址。

  • ip addr show:显示所有网络接口的地址(IPv4 和 IPv6)。

参见man ip address

  • 使用ip link配置网络设备:

  • ip link add mybr type bridge:创建一个名为mybr的桥。

  • ip link add name myteam type team:创建一个名为myteam的分组设备。(分组设备驱动程序将多个物理以太网设备聚合成一个逻辑设备,实际上是新的绑定设备。组队驱动在第十四章中讨论。)

  • ip link set eth1 mtu 1450:设置eth1的 MTU 为 1450。

参见man ip link

  • ARP 表(IPv4)和 NDISC (IPv6)表的管理:

  • ip neigh show:显示 IPv4 邻居表(ARP 表)和 IPv6 邻居表。

  • ip -6 neigh show:仅显示 IPv6 邻居表。

  • ip neigh flush dev eth0:从与eth0相关联的相邻表中删除所有条目。

  • ip neigh add 192.168.2.20 dev eth2 lladdr 00:11:22:33:44:55 nud permanent:添加永久邻居条目(与在 ARP 表中添加静态条目并行)。

  • ip neigh change 192.168.2.20 dev eth2 lladdr 55:44:33:22:11:00 nud permanent:更新邻居条目。

参见man ip neighbour

  • 邻居表参数的管理:

  • ip ntable show:显示邻居表参数。

  • ip ntable change name arp_cache locktime 1200 dev eth0:改变与eth0关联的 IPv4 邻居表的locktime参数。

参见man ip ntable

  • 网络命名空间管理:

  • ip netns add myNamespace:添加一个名为myNamespace的网络名称空间。

  • ip netns del myNamespace:删除名为myNamespace的网络名称空间。

  • ip netns list:显示主机上的所有网络名称空间。

  • ip netns monitor:为通过ip netns命令添加或删除的每个网络名称空间显示一行屏幕。

参见man ip netns

  • 多播地址的配置:

  • ip maddr show:显示主机上的所有组播地址(IPv4 和 IPv6)。

  • ip maddr add 00:10:02:03:04:05 dev eth1:在eth1上添加组播地址。

参见man ip maddress

  • 监控 netlink 消息。例如:

  • ip monitor route在屏幕上显示关于各种网络事件的消息,如添加或删除路由。

参见man ip monitor

  • 路由表的管理:

  • ip route show:显示路由表。

  • ip route flush dev eth1:从路由表中删除与eth1相关的路由条目。

  • ip route add default via 192.168.2.1:添加 192.168.2.1 作为默认网关.

  • ip route get 192.168.2.10:获取到 192.168.2.10 的路由并显示。

参见man ip route

  • RPDB(路由策略数据库)中的规则管理。例如:

  • ip rule add tos 0x02 table 200:添加一个规则,设置路由子系统在路由表 252 中查找 TOS 值为 0x02 的数据包(TOS 是 IPv4 报头中的一个字段)。

  • ip rule del tos 0x02 table 200:从 RPDB 中删除指定的规则。

  • ip rule show:显示 RPDB 中的规则。

参见man ip rule

  • 调谐器/TAP 设备管理:

  • ip tuntap add tun1 mode tun:创建一个名为tun1的调谐器设备。

  • ip tuntap del tun1 mode tun:删除名为tun1的调谐器设备。

  • ip tuntap add tap1 mode tap:创建一个名为tap1的点击设备。

  • ip tuntap del tap1 mode tap:删除名为tap1的 TAP 设备。

  • IPsec 策略的管理:

  • ip xfrm policy show:显示 IPsec 策略。

  • ip xfrm state show:显示 IPsec 状态。

参见man ip xfrm

ss工具用于转储套接字统计数据。比如跑步

ss -t –a

将显示所有 TCP 套接字:

State       Recv-Q Send-Q          Local Address:Port              Peer Address:Port
LISTEN      0      32                          *:ftp                          *:*
LISTEN      0      128                         *:ssh                          *:*
LISTEN      0      128                 127.0.0.1:ipp                          *:*
ESTAB       0      0               192.168.2.200:ssh              192.168.2.104:52089
ESTAB       0      52              192.168.2.200:ssh              192.168.2.104:51352
ESTAB       0      0               192.168.2.200:ssh              192.168.2.104:51523
ESTAB       0      0               192.168.2.200:59532           107.21.231.190:http
LISTEN      0      128                        :::ssh                         :::*
LISTEN      0      128                       ::1:ipp                         :::*
CLOSE-WAIT  1      0                         ::1:48723                      ::1:ipp

iproute2还有其他工具:

  • bridge:显示/操作网桥地址和设备。例如:

  • bridge fdb show:显示转发条目。

参见man bridge

  • genl:获取注册的通用 netlink 系列的信息(如 id、标题大小、最大属性等)。例如,运行genl ctrl list可以得到这样的结果:

    Name: nlctrl
            ID: 0x10  Version: 0x2  header size: 0  max attribs: 7
            commands supported:
                    #1:  ID-0x3
                    Capabilities (0xe):
                      can doit; can dumpit; has policy
    
            multicast groups:
                    #1:  ID-0x10  name: notify
    
    
  • lnstat:显示 Linux 网络统计。

  • rtmon:监控 Rtnetlink 套接字。

  • tc:显示/操作交通控制设置。例如:

  • tc qdisc show:运行该命令显示安装了哪个队列规程(qdisc)条目,例如:

    qdisc pfifo_fast 0: dev eth1 root refcnt 2 bands 3 priomap  1 2 . . .
    
    
  • 这表明pfifo_fast qdisceth1网络设备相关联。?? 是一个无类排队规则,是 Linux 中默认的 ??。

  • tc -s qdisc show dev eth1: Shows statistics of the qdisc associated to eth1.

    参见man tc

    参见:Linux 高级路由和流量控制 HOWTO: www.lartc.org/howto/

通过向netdev邮件列表发送补丁来完成iproute2的开发。撰写本文时,ethtool的维护者是斯蒂芬·海明格。iproute2是在git资源库上开发的,可以通过git clone git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git下载。

iptables 和 iptables6

iptablesiptables6分别是用于 IPv4 和 IPv6 的包过滤和 NAT 管理的管理工具。使用iptables / iptables6,您可以定义规则列表。每一条这样的规则都告诉我们应该对数据包做什么(例如,丢弃它还是接受它)。每个规则为数据包指定一些匹配条件,例如,它将是 UDP 数据包。以下是使用iptables命令的一些例子:

  • iptables -A INPUT -p tcp --dport=80 -j LOG --log-level 1:该规则的意思是,目的端口为 80 的传入 TCP 数据包将被转储到系统日志中。
  • iptables –L:列出过滤表中的所有规则。(命令中没有提到表,所以它访问过滤器表,这是默认的表。)
  • iptables –t nat –L:列出 NAT 表中的所有规则。
  • iptables –F:刷新选中的表格。
  • iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE:设置一个伪装规则。

网址:www.netfilter.org/

ipvsadm

Linux 虚拟服务器管理工具。网址:www.linuxvirtualserver.org/software/ipvs.html

iw

显示/操作无线设备及其配置。iw包基于通用的 netlink 套接字(见第二章)。例如,您可以执行以下操作:

  • iw dev wlan0 scan:扫描附近的无线设备。
  • iw wlan0 station dump:显示电台的统计数据。
  • iw list:获取关于无线设备的信息(例如频带信息和 802.11n 信息)。
  • iw dev wlan0 get power_save–进入省电模式。
  • iw dev wlan0 set type ibss:将无线接口模式更改为 ibss (Ad-Hoc)。
  • iw dev wlan0 set type mesh:将无线接口模式改为网状模式。
  • iw dev wlan0 set type monitor:将无线接口模式改为监控模式。
  • iw dev wlan0 set type managed:将无线接口模式改为管理模式。

参见man iw

Gitweb: http://git.kernel.org/cgit/linux/kernel/git/jberg/iw.git

网址:http://wireless.kernel.org/en/users/Documentation/iw

尤克里里琴

管理无线设备的旧工具。iwconfig属于wireless-tools包,基于 IOCTLs。网址:www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

libreswan 项目

openswan版本 2.6.38 派生出来的 IPsec 软件解决方案。网址:http://libreswan.org/

l2ping

一个命令行实用程序,用于通过蓝牙设备发送 L2CAP 回应请求和接收应答。l2ping实用程序属于bluez包。网址:www.bluez.org/

低盘工具

一组管理 Linux LoWPAN 堆栈的实用程序。网址:http://sourceforge.net/projects/linux-zigbee/files/linux-zigbee-sources/0.3/

lshw

显示机器硬件配置信息的实用程序。网址:http://ezix.org/project/wiki/HardwareLiSter

lscpu

用于显示系统上 CPU 信息的实用程序。它基于来自/proc/cpuinfosysfs的信息。lscpu属于util-linux包。

LSPCI

一个实用程序,用于显示系统中 PCI 总线以及与之相连的设备的信息。有时你需要用lspci命令获得一些关于 PCI 网络设备的信息。lspci实用程序属于pciutils包。网址:http://mj.ucw.cz/sw/pciutils/

mrouted

多播路由守护程序,实现 IPv4 距离矢量多播路由协议(DVMRP ),该协议在 1988 年的 RFC 1075 中指定。网址:http://troglobit.com/mrouted.html

nc

跨网络读写数据的命令行实用程序。nc属于nmap-ncat包。网址:http://nmap.org/

一个命令行工具,基于著名的grep命令,允许您指定扩展表达式来匹配数据包的数据负载。它可以识别以太网、PPP、SLIP、FDDI 和空接口上的 TCP、UDP 和 ICMP。网址:http://ngrep.sourceforge.net/

netperf

Netperf 是一个网络基准测试工具。网址:www.netperf.org/netperf/

网络嗅探

netsniff-ng是一个开源的项目网络工具包,它可以帮助分析网络流量、执行压力测试、以非常高的速度生成数据包等等。它使用 PF_PACKET 零拷贝环(TX 和 RX)。它提供的工具如下:

  • netsniff-ng是一个快速的零拷贝分析器,pcap捕获和重放工具。与本附录中提到的许多工具不同,netsniff-ng工具是特定于 Linux 的,不支持其他操作系统。示例:运行netsniff-ng --in eth1 --out dump.pcap -s -b 0会创建一个可以被wiresharktcpdump读取的pcap文件。–s标志用于静音,–b 0 用于绑定到 CPU 0。参见man netsniff-ng
  • trafgen是一个零拷贝高性能网络数据包流量生成器实用程序。
  • ifpps是一个小工具,定期从内核提供类似 top 的网络和系统统计数据。ifpps直接从procfs文件中收集数据。
  • bpfc是一个小型的 Berkeley 包过滤汇编器和编译器。

正在获取git存储库:git clone git://github.com/borkmann/netsniff-ng.git。网址:http://netsniff-ng.org/

网表

netstat工具使您能够打印多播成员、路由表、网络连接、接口统计、套接字状态等等。netstat工具属于net-tools包。有用的标志:

  • netstat –s:显示每个协议的汇总统计数据。
  • netstat –g:显示 IPv4 和 IPv6 的组播组成员信息。
  • netstat -r:显示内核 IP 路由表。
  • netstat –nl:显示监听套接字(-n标志用于显示数字地址,而不是试图确定符号主机、端口或用户名)。
  • netstat –aw:显示所有原始套接字。
  • netstat –ax:显示所有 Unix 套接字。
  • netstat –at:显示所有 TCP 套接字。
  • netstat –au:显示所有 UDP 套接字。

网址:http://net-tools.sourceforge.net

nmap(网络映射器)

Nmap 是一个开源安全项目,它提供了一个网络探索和探测工具以及一个安全/端口扫描器。它具有端口扫描(检测目标主机上开放的端口)、操作系统检测、检测 MAC 地址等功能。例如,

nmapwww.google.com

可以给出如下输出:

Starting Nmap 6.00 (http://nmap.org) at 2013-09-26 16:37 IDT
Nmap scan report forwww.google.com(212.179.154.227)
Host is up (0.013s latency).
Other addresses forwww.google.com(not scanned): 212.179.154.221 212.179.154.251 212.179.154.232 212.179.154.237 212.179.154.216 212.179.154.231 212.179.154.241 212.179.154.247 212.179.154.222 212.179.154.226 212.179.154.236 212.179.154.246 212.179.154.212 212.179.154.217 212.179.154.242
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https
Nmap done: 1 IP address (1 host up) scanned in 5.24 seconds

nmapnping实用程序可用于生成 ARP 中毒、网络压力测试和拒绝服务攻击的原始数据包,以及像普通的ping实用程序一样测试连通性。您可以使用nping实用程序在生成的流量中设置 IP 选项。参见http://nmap.org/book/nping-man-ip-options.html。网址:http://nmap.org/

open wan

一个实现基于 IPsec 的 VPN 解决方案的开源项目。它基于 FreeS/WAN 项目。网址:www.openswan.org/projects/openswan

openvpn

一个基于 SSL/TLS 实现 VPN 的开源项目。网址:www.openvpn.net/

包装

一个基于以太网的包生成器工具。该工具同时具有 GUI 和 CLI。网址:http://packeth.sourceforge.net/packeth/Home.html

通过发送 ICMP 回应请求消息来测试连通性的著名实用程序。以下是本书中提到的四个有用的选项:

  • -Q tos:允许设置 ICMP 数据包中的服务质量位。本附录中提到的关于tshark过滤器的解释。
  • -R:设置记录路由 IP 选项(在第四章中讨论)。
  • -T:设置时间戳 IP 选项(在第四章中讨论)。
  • -f:洪水平。
  • 更多命令行选项见man ping

ping实用程序属于iputils包。网站:。www.skbuff.net/iputils/

pipd

一个开源的轻量级独立协议独立多播-稀疏模式(PIM-SM) v2 多播守护程序。由约阿希姆·尼尔森维护。参见http://troglobit.com/pimd.htmlgit储存库:https://github.com/troglobit/pimd/

弹出型按钮

PPTP Linux 服务器。网址:http://poptop.sourceforge.net/dox/

购买力平价

一个开源的 PPP 守护进程。git储存库:git://ozlabs.org/∼paulus/ppp.git。网址:http://ppp.samba.org/download.html

PK gen

pktgen内核模块(net/core/pktgen.c)可以以非常高的速度生成数据包。监视和控制是通过写入/proc/net/pktgen条目完成的。关于“如何使用 linux 包生成器”,请参见Documentation/networking/pktgen.txt

rad VD

这是 IPv6 的路由器广告守护程序。这是一个由 Reuben Hawkins 维护的开源项目。它可用于 IPv6 无状态自动配置和重新编号。网址:www.litech.org/radvd/git储存库:https://github.com/reubenhwk/radvd

路线

用于路由表管理的命令行工具。它属于net-tools包,该包基于 IOCTLs,比iproute2包更老。示例:

  • route –n:显示没有名称解析的路由表。
  • route add default gateway 192.168.1.1:添加 192.168.1.1 作为默认网关。
  • route –C:显示路由缓存(请记住,内核 3.6 中删除了 IPv4 路由缓存;参见第五章中的“IPv4 路由缓存”部分。

参见man route

RP-PPPoE

适用于 Linux 和 Solaris 系统的开源以太网 PPP(PPPoE)客户端。网址:www.roaringpenguin.com/products/pppoe

sar

一个命令行工具,用于收集和报告有关系统活动的统计信息。它是sysstat包的一部分。例如,运行以下命令将显示四次 CPU 统计信息,时间间隔为 1 秒,最后显示平均值:

sar 1 4
Linux 3.6.10-4.fc18.x86_64 (a)  10/22/2013      _x86_64_        (2 CPU)

07:47:10 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
07:47:11 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
07:47:12 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
07:47:13 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
07:47:14 PM     all      0.00      0.00      0.50      0.00      0.00     99.50
Average:        all      0.00      0.00      0.13      0.00      0.00     99.87

网址:http://sebastien.godard.pagesperso-orange.fr/

sm croute

用于多播路由操作的命令行工具。网址:www.cschill.de/smcroute/

放风

一个开源项目,提供网络入侵检测系统(IDS)和网络入侵防御系统(IPS)。网址:www.snort.org/

苏里南

提供 IDS/IPS 和网络安全监控引擎的开源项目。网址:http://suricata-ids.org/

strongSwan 天鹅

一个为 Linux、Android 和其他操作系统实现 IPsec 解决方案的开源项目。IKEv1 和 IKEv2 都已实现。维护者是 Andreas Steffen 教授。网址:www.strongswan.org/

系统

sysctl实用程序在运行时显示内核参数(包括网络参数)。它还可以设置内核参数。例如,sysctl –a显示所有内核参数。sysctl实用程序属于procps-ng包。

任务集

用于设置或检索进程的 CPU 关联性的命令行实用程序。taskset实用程序来自util-linux包。

`tcpdump

Tcpdump是一个开源的命令行协议分析器,可以从www.tcpdump.org获得。它基于一个名为libpcap的 C/C++网络流量捕获库。像wireshark一样,它可以将其结果写入一个文件,并从一个文件中读取它们,它支持过滤。与wireshark不同,它没有前端 GUI。但是它的输出文件可以被wireshark读取。使用tcpdump进行嗅探的示例:

tcpdump -i eth1

网址:www.tcpdump.org

顶部

top实用程序提供了系统的实时视图(内存使用、CPU 使用等参数)和系统摘要。这个实用程序是procps-ng包的一部分。网址:https://gitorious.org/procps

tracepath

tracepath命令跟踪到目的地址的路径,沿着这条路径发现 MTU。对于 IPv6 目的地址,可以使用tracepath6tracepath实用程序属于iputils包。网址:www.skbuff.net/iputils/

示踪路线

打印数据包到达某个目的地的路径。traceroute实用程序使用 IP 协议的生存时间(TTL)字段使数据包路径上的主机返回 ICMP 超时响应。在第三章的中讨论了traceroute实用程序,它处理 ICMP 协议。网址:http://traceroute.sourceforge.net

tshark

tshark实用程序提供了一个命令行包分析器。它是wireshark包的一部分。它有许多命令行选项。例如,您可以使用–w选项将输出写入文件。您可以使用tshark为包过滤设置各种过滤器,其中一些可以是复杂的过滤器(您很快就会看到)。设置过滤器以仅捕获 ICMPv4 数据包的示例:

tshark -R icmp
Capturing on eth1
17.609101 192.168.2.200 -> 81.218.16.241 ICMP 98 Echo (ping) request  id=0x0dc6, seq=1/256, ttl=64
17.617101 81.218.16.241 -> 192.168.2.200 ICMP 98 Echo (ping) reply    id=0x0dc6, seq=1/256, ttl=58

您还可以根据 IPv4 报头中的字段值设置过滤器。例如,以下命令对 IPv4 标头中的 DS 字段设置筛选器:

tshark -R "ip.dsfield==0x2"

如果您从第二个终端发送 IPv4 报头中 DS 字段为 0x2 的流量(例如,这种流量可以通过ping –Q 0x2 destinationAdderss发送),它将通过tshark显示在屏幕上。

按源 MAC 地址过滤的示例:

tshark ether src host 00:e0:4c:11:22:33

端口范围为 6000–8000 的 UDP 数据包过滤示例:

tshark -R udp portrange 6000-8000

设置过滤器以捕获源 IP 地址为 192.168.2.200 且端口为 80 的流量的示例(不一定是 TCP 流量,因为这里没有在某些指定协议上设置过滤器):

tshark -i eth1 -f "src host 192.168.2.200 and port 80"

tunctl

tunctl是一个用于创建调谐器/TAP 设备的旧工具。从http://tunctl.sourceforge.net开始提供。请注意,您也可以使用ip命令(参见本附录前面的iproute2部分)和openvpn包的openvpn命令行工具创建或删除调谐器/TAP 设备:

openvpn --mktun --dev tun1
openvpn --rmtun --dev tun1

udevadm】

您可以通过在它的sysfs条目上运行udevadm来获得网络设备类型。例如,如果设备在sysfs下有此条目:

/sys/devices/virtual/net/eth1.100

然后你可以发现它的 DEVTYPE 是 VLAN:

udevadm info -q all -p  /sys/devices/virtual/net/eth1.100/

P: /devices/virtual/net/eth1.100
E: COMMENT=net device ()
E: DEVPATH=/devices/virtual/net/eth1.100
E: DEVTYPE=vlan
E: IFINDEX=4
E: INTERFACE=eth1.100
E: MATCHADDR=00:e0:4c:53:44:58
E: MATCHDEVID=0x0
E: MATCHIFTYPE=1
E: SUBSYSTEM=net
E: UDEV_LOG=3
E: USEC_INITIALIZED=28392625695

udevadm属于udev包。网址:www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html

取消共享

unshare实用程序使您能够创建一个名称空间,并在该名称空间内运行一个程序,该程序不与其父级共享。unsare实用程序属于util-linux包。对于unshare实用程序的各种命令行选项,参见man unshare,用法示例:

unshare -u /bin/bash

这将创建一个 UTS 命名空间。

unshare --net /bin/bash

这将创建一个新的网络名称空间,其中将启动一个bash进程。Gitweb: http://git.kernel.org/cgit/utils/util-linux/util-linux.git。网址:http://userweb.kernel.org/∼kzak/util-linux/

vconfig

vconfig实用程序使您能够配置 VLAN (802.1q)接口。用法示例:

  • vconfig add eth2 100:增加一个 VLAN 接口。这将创建一个 VLAN 接口eth2.100
  • vconfig rem eth2.100:移除eth2.100 VLAN 接口。
  • 请注意,您还可以使用ip命令添加和删除 VLAN 接口,例如,如下所示:
  • ip link add link eth0 name eth0.100 type vlan id 100
  • vconfig set_egress_map eth2.100 0 4:将 SKB 优先级 0 映射到 VLAN 优先级 4,这样 SKB 优先级为 0 的出站数据包将被标记为 4 作为 VLAN 优先级。默认的 VLAN 优先级为 0。
  • vconfig set_ingress_map eth2.100 1 5:将 VLAN 优先级 5 映射到 SKB 优先级 1,这样 VLAN 优先级为 5 的传入数据包将与 SKB 优先级 1 一起排队。默认的 SKB 优先级为 0。

参见man vconfig

注意,如果 VLAN 支持被编译成一个内核模块,那么在试图添加 VLAN 接口之前,您必须通过modprobe 8021q加载 VLAN 内核模块。网址:www.candelatech.com/∼greear/vlan.html

wpa _ 恳求者

为 Linux 和其他操作系统提供无线请求程序的开源软件。它支持 WPA 和 WPA2。网址:http://hostap.epitest.fi/wpa_supplicant/

wireshark

项目提供了一个免费的开源分析器(“嗅探器”)。它有两种风格:基于 GTK+的前端 GUI 和命令行,即tshark实用程序(在本附录前面提到过)。它可以在许多操作系统上使用,并且是动态发展的:当新的特性被添加到现有协议和新的协议中时,新的解析器(“解析器”)被修改或添加。Wireshark 有许多功能:

  • 支持定义各种过滤器(端口、目的地或源地址、协议标识符、报头中的字段等)。
  • 允许根据各种参数(协议类型、时间等)对结果进行排序。
  • 将嗅探器输出保存到文件中/从文件中读取嗅探器输出。
  • 读取/写入许多不同的捕获文件格式:tcpdump ( libpcap)、Pcap NG 等等。
  • 捕获过滤器和显示过滤器。

激活wiresharkthsark嗅探器会将网络接口置于混杂模式,使其能够处理目的地不是本地主机的数据包。手册页中提供了很多信息:man wiresharkman tshark。你可以在http://wiki.wireshark.org/SampleCaptures找到超过 75 种不同协议的嗅探样本。Wireshark 用户邮件列表:www.wireshark.org/mailman/listinfo/wireshark-users。网址:www.wireshark.org。维基:http://wiki.wireshark.org/

索普

一个开源项目,实现了各种路由协议,如 BGP、IGMP、OLSR、OSPF、PIM 和 RIP。XORP 这个名字来源于可扩展的开放式路由器平台。网址:www.xorp.org/。`

十八、附录 C:词汇表

本书涵盖了以下词汇表中的术语。

ACL—异步面向连接的链路。蓝牙协议。

亚行 —安卓调试桥。

av DTP—音视频分发传输协议。蓝牙协议。

AEAD—关联数据的认证加密。

AES-NI —AES 指令集。

AH—认证头协议。用于 IPsec,协议编号为 51。

援助— 关联 ID 。无线客户端在关联到接入点时获得的唯一号码。它由接入点分配,范围为 1–2007。

AMP—候补麦克/PHY 。

AMPDU—聚合 Mac 协议数据单元。IEEE 802.11n 中的一种分组聚合

AMSDU—聚合 Mac 业务数据单元。IEEE 802.11n 中的一种分组聚合

AOSP —Android 开源项目。

接入点—接入点。在无线网络中,无线客户端关联的无线设备,它使客户端能够连接到有线网络。

API—应用编程接口。定义软件层接口的一组方法和数据结构,例如库的接口。

ABRO—权威的边界路由器选项。为 IPv6 的邻居发现优化添加。参见 RFC 6775。

ABS— Android Builders 峰会。

ARO—地址注册选项。为 IPv6 的邻居发现优化添加。参见 RFC 6775。

ARP—地址解析协议。一种协议,用于查找网络地址(如 IPv4 地址)到链路层地址(如 48 位以太网地址)之间的映射。

ARPD —ARP 守护进程。实现 ARP 功能的用户空间守护进程。

Ashmem**——**安卓共享内存。

ASM—任意源组播。在任意源模型中,您不需要指定从单个特定源地址或一组地址接收多播流量。

IEEE 802.11n 中使用的 BA— 块确认机制

BGP—边界网关协议。核心路由协议。

BLE—蓝牙低能耗。

BNEP—蓝牙网络封装协议。

BTH—基地运输头。12 字节的 InfiniBand 报头。它指定了源和目的 QPs、操作、包序列号和分区。

InfiniBand 堆栈中的 CM— 通信管理器。

CIDR—无类域间路由。一种分配用于域间路由的 Internet 地址的方式。

CQ—完成队列 (InfiniBand)。

CRIU —用户空间中的检查点/恢复。CRIU 是一个软件工具,主要在用户空间中实现,使用它你可以冻结一个正在运行的进程,并把它作为一个文件集合检查到一个文件系统中。然后,您可以使用这些文件从应用冻结的地方恢复和运行应用。参见http://criu.org/Main_Page

CSMA/CD—载波侦听多路访问/冲突检测。一种用于以太网的媒体访问控制方法。

CSMA/加州— 载波侦听多路访问/冲突避免。一种用于无线网络的媒体访问控制方法。

CT—连接追踪。作为 NAT 基础的网络过滤层。

爸爸—重复地址检测。DAD 是一种机制,有助于检测 LAN 中不同主机上是否存在双 L3 地址。

DAC—重复地址确认。RFC 6775 中添加的 ICMPv6 类型,数值为 158。

DAR—重复地址请求。RFC 6775 中添加的 ICMPv6 类型,数值为 157。

DCCP—数据报拥塞控制协议。一种不可靠的拥塞控制传输层协议。例如,在要求低延迟且允许少量数据丢失的应用(如电话和流媒体应用)中,使用 DCCP 是有意义的。

DHCP—动态主机配置协议。一种协议,用于配置网络设备参数,如 IP 地址、默认路由以及一个或多个 DNS 服务器地址。

DMA—直接内存访问。

DNAT—目的地 NAT 。改变目的地址的 NAT。

DNS—域名系统。一种将域名转换成 IP 地址的系统。

DSCP—区分服务码点。分类机制。

DVMRP—距离矢量组播路由协议。路由多播数据报的协议。适合在自治系统中使用。在 1988 年的 RFC 1075 中定义。

ECN—显式拥塞通知。请参见 RFC 3168,“在 IP 中添加显式拥塞通知(ECN)”

EDR—增强型数据速率。

EGP—外部网关协议。现在被认为已经过时的路由协议。它于 1982 年在 RFC 827 中首次被正式化。

ERTM—增强型重传模式。蓝牙中使用的一种可靠的错误和流量控制协议。

ESP—封装安全载荷。在 IPsec 中使用,协议编号为 50。

ETH—扩展传输头:InfiniBand 头,大小从 4 到 28 字节。该报头代表额外的报头族,其可以根据服务的类别和所使用的操作而存在。

ETSI— 欧洲电信标准协会。

FCS— 帧检查序列

FIB—转发信息库。包含路由表信息的数据库。

FMR—快速内存区 (InfiniBand)。

FSF—自由软件基金会。

FTP— 文件传输协议。基于 TCP 在两台主机之间传输文件的协议。

GCC —GNU 编译器集合。

GID—全局标识符。

GMP—集团管理协议。指 IGMP 和马丁路德金。参见 RFC 4604,第一部分。

GRE—通用路由封装。隧道协议。

GRH—全局路由头 ??。40 字节的 InfiniBand 报头。它使用 GIDs 描述源端口和目的端口,其格式与 IPv6 报头相同。

GRO—通用接收卸载。一种技术,在接收时将传入的数据包合并成一个更大的数据包,以提高性能。

GSO—通用分段卸载。一种技术,不在传输层而是尽可能靠近网络驱动程序或在网络驱动程序本身对传出数据包进行分段。

GUID—全球唯一标识符。

HAL—硬件抽象层。

HCA—主机通道适配器。

HCI—主机控制器接口。例如,用于蓝牙、PCI 等。

HDP—健康设备简介。由蓝牙使用。

HFP—免提模式。由蓝牙使用。

HoL 阻塞—行首阻塞是一种性能限制现象,发生在一行数据包被第一个数据包阻塞时,例如,在 HTTP 流水线中的多个请求中。

HPC—高性能计算。对计算机资源的管理方式,可为繁重的任务(如解决科学、工程或经济中的大规模问题)提供高性能。

HS—高速。

HTTP—超文本传输协议。访问万维网的基本协议。

HWMP —混合无线网状协议。一种用于无线网状网络的路由协议,包括两种类型的路由:按需路由和主动路由。

I warp—互联网广域 RDMA 协议。

伊瑟尔—RDMA 的 iSCSI 分机。

IANA— 互联网号码分配机构。负责 IP 寻址、DNS 根的全球协调以及其他与 IP 相关的符号和数字。由互联网名称与数字地址分配机构(ICANN)运营。

IBTA —InfiniBand 贸易协会。

ICMP—互联网控制消息协议。用于控制和信息消息的 IP 协议。众所周知的ping实用程序基于 ICMP。众所周知,ICMP 协议被用于各种类型的安全 DoS 攻击,如 Smurf 攻击。

ICE—交互连接建立。在 RFC 5245 中规定。一种穿越 NAT 的协议。

红十字国际委员会(ICRC)—不变 CRC。4 字节的 InfiniBand 报头。涵盖所有字段,当数据包在子网中传输时,这些字段不应更改。

IDS—入侵检测系统。

IoT—物联网。日常物品的网络化。

IEEE—电气和电子工程师协会。

IGMP—互联网群组管理协议。多播组成员身份协议。

IKE—互联网密钥交换。设置 IPsec 安全关联的协议。

IOMMU —I/O 内存管理单元。

IP—互联网协议。互联网的主要寻址和路由协议。1981 年,RFC 791 首次规定了 IPv4,1995 年,RFC 1883 首次规定了 IPv6。

IPoIB—InfiniBand 上的 IP。

IPS—入侵防御系统。

ISAKMP—互联网安全协会&密钥管理协议。

IOCTL—输入/输出控制。提供从用户空间到内核的访问的系统调用。

IPC—进程间通信。IPC 有许多不同的机制,比如共享内存信号量、消息队列等等。

IPCOMP— IP 有效载荷压缩协议。一种压缩协议,旨在减少通过慢速网络连接发送的数据量。使用 IPComp 可以提高两个网络节点之间的整体通信性能。

IPsec —IP 安全。IETF 开发的一组协议,用于在 IP 协议上安全交换数据包。根据 IPv6 规范,IPsec 在 IPv6 中是强制的,在 IPv4 中是可选的,尽管许多操作系统也在 IPv4 中实现了 IPsec。IPsec 使用两种加密模式:传输和隧道。

IPVS —IP 虚拟服务器。Linux 内核负载平衡基础设施,支持 IPv4 和 IPv6。参见http://www.linuxvirtualserver.org/software/ipvs.html

中断服务程序。接收到中断时调用的中断处理程序。

ISM—工业、科学和医疗无线电波段。

巨型帧—大小高达 9K 的数据包。一些网络接口允许使用高达 9K 的 MTU。在某些情况下,使用巨型帧可以提高网络性能,例如在批量数据传输中。

KVM—基于内核的虚拟机。Linux 虚拟化项目。

LACP—链路聚合控制协议。

LAN—局域网。连接有限区域(如办公楼)的网络。

LID—本地标识符。由子网管理器(InfiniBand)分配给每个子网端口的 16 位值。

L2CAP—逻辑链路控制和适配协议。用于蓝牙。

L2TP—VPN 使用的第二层隧道协议。L2TPv3 是在 RFC 3931 中指定的(RFC 5641 有一些更新)。

LKML— Linux 内核邮件列表。

LLCP—逻辑链路控制协议。由 NFC 使用。

LLN—低功耗和有损网络。

LoWPAN— 低功耗无线个域网。

LMP—链路管理协议。控制两个蓝牙设备之间的无线电链接。

LPM—最长前缀匹配。路由子系统使用的算法。

LRH—本地路由头。8 字节的 InfiniBand 报头。它标识数据包的本地源端口和目的端口。它还指定消息的请求 QoS 属性(SL 和 VL)。

LRO—大型接收卸载。

LR-WPAN— 低速无线个人局域网。在 IEEE 802.15.4 中使用。

LSB—最低有效位。

LSRR—散源记录路线。

LTE—长期演进。

MAC—媒体访问控制。OSI 模型的数据链路层(L2)的子层。

MAD—管理数据报(InfiniBand)。

MFC—组播转发缓存。内核中的一种数据结构,由多播转发表项组成。

MIB—管理信息库。

MLD—多播监听器发现协议。使每个 IPv6 路由器能够发现多播侦听器的存在。在 2004 年的 RFC 3810 中规定了 MLD 协议。

MLME— MAC 层管理实体。IEEE 802.11 管理层中的一个组件,负责扫描、身份验证、关联和重新关联等操作。

MR—内存区(InfiniBand)。

MSF—组播源过滤。这是设置过滤器的功能,以便来自非预期源的多播流量将被丢弃。

MSI—消息发出中断信号。

MSS—最大分段尺寸。TCP 协议的一个参数。

MTU— 最大传输单位。网络协议可以传输的最大数据包的大小。

MW—内存窗口(InfiniBand)。

NAP—网络接入点。

NAPI— 新的 API。一种技术,网络驱动程序不是中断驱动的,而是使用轮询。在第一章中讨论了 NAPI。

NAT—网络地址转换。负责修改 IP 报头的层。在 Linux 中,对 IPv6 NAT 的支持合并到了内核 3.7 中。

NAT-T —NAT 穿越。

NCI —NFC 控制器接口。

ND/NDISC—邻居发现协议。在 IPv6 中使用。它的任务包括:发现同一链路上的网络节点,自动配置地址,查找其他节点的链路层地址,以及维护其他节点的可达性信息。

NFC— 近场通信。

NDEF —NFC 数据交换格式。

NIC—网络接口卡,又称网络接口控制器或网络适配器。硬件网络设备。

NUMA—非一致性内存访问。

NDEF 推送协议。

NPAR—网卡分区。一种使您能够将网卡(NIC)流量划分为多个分区的技术。

NUD—网络不可达检测。一种负责确定是否可以到达邻居的机制。

OBEX—物品交换。蓝牙中使用的设备间交换二进制对象的协议。

OEM— 原始设备制造商。

OFA —OpenFabrics 联盟。

OCF—开放的加密框架。

OHA—开放手机联盟。

OOTB——突如其来的数据包(《SCTP 协议》的一个术语)。如果数据包的格式正确(即没有校验和错误),则该数据包是 OOTB 数据包,但是接收方无法识别该数据包所属的 SCTP 协会(参见 RFC 4960 中的 8.4 节)。

OPP—对象推送模式。由蓝牙使用。

OSI 模型— 开放系统互连。

OSPF—首先打开最短路径。为 IP 网络开发的内部网关路由协议。

PADI— PPPoE 主动发现发起。

PADO— PPPoE 主动发现服务。

PADR— PPPoE 主动发现请求。

PADS— PPPoE 主动发现会话。

PADT— PPPoE 主动发现终止。

—个人区域联网。蓝牙中使用的描述文件。

PCI—外围组件互连。用于连接设备的总线。许多网络接口卡是 PCI 设备。

PD—保护域。

PHDC—个人健康设备通信。由 NFC 使用。

PID— 过程标识符。

PIM—协议独立组播协议。多播路由协议。

PIM-SM—协议独立组播—稀疏模式。

PLME—IEEE 802.11 中的物理层管理实体。

PM—电源管理。

PPP—点对点数据链路协议。两台主机之间直接通信的协议。

PPPoE—以太网上的 PPP。PPPoE 协议是在 1999 年的 RFC 2516 中指定的。

PERR—路径错误。通知无线网状网络路由中某些故障的消息。

准备—路径回复。在无线网状网络中作为对 PREQ 消息的回复而发送的单播包。

PREQ—路径请求。在无线网状网络中查找某个地址时发送的广播数据包。

PSK—预共享密钥。

Qdisc—排队纪律。

QP—队列对(内场带)。

RA—路由器警报。IPv4 选项之一。它通知中转路由器更仔细地检查 IP 数据包的内容。它被许多协议使用,如 IGMP、MLD 等。

RANN— 根公告。由无线网状网络中的根网状点周期性发送的广播包。

RARP—反向地址解析协议。一种协议,用于查找链路层地址(如 48 位以太网地址)到网络地址(如 IPv4 地址)之间的映射。

RC—InfiniBand 中的一种 QP 传输类型。

RDMA— 远程直接内存访问。从一台主机到另一台主机的直接内存访问。

RDS— 可靠数据报套接字。Oracle 开发的一种可靠的无连接协议。

RFC—征求意见。指定互联网规范、通信协议、程序和事件的文档。RFC 的标准化流程记录在http://tools.ietf.org/html/rfc2026“互联网标准流程”中。

RFID—射频识别。

RFCOMM—射频通信协议。用于蓝牙。

RFS—接收流量导向。

RIP—路由信息协议:一种距离矢量路由协议。

RoCE— 融合以太网上的 RDMA。

RP—会合点。

RPL—适用于低功耗和有损网络的 IPv6 路由协议。RFC 6550 中规定了 RPL 协议。

RPDB—路由策略数据库。

RPF—反向路径滤波器。一种旨在防止源地址欺骗的技术。

RPC— 远程过程调用。

RPS— 接收数据包导向。

RS—路由器招标。

RSA—一种密码算法。RSA 代表 Ron Rivest、阿迪·萨莫尔和 Leonard Adleman,他们是 RSA 的开发者。

RTP—实时传输协议。通过 IP 网络传输音频和视频的协议。

RTR—准备接收。无限带宽 QP 状态机中的一个状态。

RTS—准备发送。无限带宽 QP 状态机中的一个状态。

SA—保安协会。两台主机之间的逻辑关系,由各种参数组成,如加密密钥、加密算法、SPI 等。

SACK— 选择性确认。参见 RFC 2018,“TCP 选择性确认选项”,1996 年。

SAD— 安全关联数据库。

SAR—分割和重组。

SBC—会话边界控制器。

SCO— 面向同步连接的链路。蓝牙协议。

SDP— 服务发现协议。用于蓝牙。

SCTP— 流控传输协议。兼具 UDP 和 TCP 功能的传输协议。

SE—安全元素(NFC)。

SIG—特殊利益集团。

SIP—会话发起协议。VoIP 的一种信令协议,用于创建和修改 VoIP 会话。

SLAAC—无状态地址自动配置。在 RFC 4862 中规定。

SKB—套接字缓冲器。表示网络数据包的内核数据结构(由sk_buff结构、include/linux/skbuff.h实现)。

SL—服务水平。InfiniBand 中的 QoS 是使用 S1 到 VL 的映射和每个 VL 的资源来实现的。

SLAAC—无状态地址自动配置。

SM—子网管理器。

SMA—子网管理代理。

SME—IEEE 802.11 中的系统管理实体。

SMP—对称多处理。一种架构,其中两个或多个相同的处理器连接到一个共享的主存储器。

SNAT—源 NAT。改变源地址的 NAT。

SNEP—用于交换 NDEF 格式数据的简单 NDEF 交换协议(SNEP)。

SNMP—简单网络管理协议。

SPI—安全参数指标。由 IPsec 使用。

SPD—安全策略数据库。

SQD—发送队列清空。无限带宽 QP 状态机中的一个状态。

SQE—发送队列错误。无限带宽 QP 状态机中的一个状态。

SRP —SCSI RDMA 协议。

SR-IOV—单根 I/O 虚拟化。一种规范,允许 PCIe 设备表现为多个独立的物理 PCIe 设备。

SRQ—共享接收队列(InfiniBand)。

SSM—源特定多播。

STUN—NAT 的会话遍历实用程序。

SSP—安全简单配对。蓝牙 2.1 版要求的安全特性。

TCP—传输控制协议。TCP 协议是当今互联网上最常用的传输协议。许多协议运行在 TCP 之上,包括 FTP、HTTP 等等。TCP 是在 1981 年的 RFC 793 中规定的,从那以后的几年中,对基本 TCP 协议进行了许多协议更新、变化和添加。

TIPC—透明的进程间通信协议。参见http://tipc.sourceforge.net/

TOS—服务类型。

TSO —TCP 分段卸载。

TTL—生存时间。IPv4 报头中的计数器(在 IPv6 中的对应部分称为跳数限制)在每个转发设备中递减。当此计数器达到 0 时,发送回超时 ICMP,并丢弃数据包。IPv4 报头的ttl成员和 IPv6 报头的hop_limit成员都是 8 位字段。

TURN—使用中继绕过 NAT 进行遍历。

UC—连接不可靠。无限带中的一种 QP 输运类型。

UD—不可靠的数据报。无限带中的一种 QP 输运类型。

UDP—用户数据报协议。UDP 是一种不可靠的协议,因为无法保证数据包会被传送到上层协议。与 TCP 不同,UDP 中没有握手阶段。UDP 报头很简单,只包含 4 个字段:源端口、目的端口、校验和以及长度。

USAGI—Ipv6 的全球游乐场。一个为 Linux 内核开发 IPv6 和 IPsec(针对 IPv4 和 IPv6)堆栈的项目。

UTS —Unix 分时系统。

VCRC—变体 CRC。2 字节的 InfiniBand 报头。覆盖数据包的所有字段。

VETH—虚拟以太网。一种网络驱动程序,支持不同网络名称空间中的两个网络设备之间的通信。

VoIP—网络电话。

VFS—虚拟文件系统。

VL—虚拟车道。一种通过单个物理链路创建多个虚拟链路的机制。

VLAN—虚拟局域网。

VPN—虚拟专用网络。

VXLAN—虚拟可扩展局域网。VXLAN 是通过 UDP 传输第 2 层以太网数据包的标准协议。VXLAN 是必需的,因为在某些情况下,防火墙会阻止隧道,例如,只允许 TCP/UDP 流量。

WDS—无线分布系统。

WLAN— 无线局域网。

WOL— 在兰上醒来。

WSN— 无线传感器网络。

XRC—扩展可靠连接。无限带中的一种 QP 输运类型。

XFRM —IPsec 变压器。用于处理 IPsec 转换的 Linux 内核框架。XFRM 框架的两个最基本的数据结构是 XFRM 策略和 XFRM 状态。