网络设备

NIC 称为网络接口卡,也就是我们说的网卡,那这里主要探讨下在操作系统下我们看的网卡的信息。

ip addr show
查看eth0的网卡信息

2 : 表示设备序号
ech0: 网卡名称
<BROADCAST,MULTICAST,UP,LOWER_UP> : 称为 net_device flags, 网络设备的状态标识。

  • BROADCAST 网卡有广播地址,可以发生广播包
  • MULTICAST 网卡可以发出多播包
  • UP 网卡处于启动状态
  • LOWER_UP 网卡属于L1启动,即连接网线

mtu: 最大传输单元, 属于链路层的概念,限制的是数据链路层的payload, 也就是上层协议的大小。 不允许超过1500个字节,正文里面有IP的头、TCP的头、HTTP的头等。如果放不下,就需要分片来传输。 MTU指数据帧中有效载荷的最大长度,不包括帧首部的长度

qdisc pfifo_fast: qdisc 为queueing discipline ,称为排队规则。 内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。

  • pfifo 不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列
  • pfifo_fast
    • 队列包括三个波段(band)。在每个波段里面,使用先进先出规则
    • 三个波段(band)的优先级也不相同。band 0的优先级最高,band 2的最低。如果band 0里面有数据包,系统就不会处理band 1里面的数据包,band 1和band 2之间也是一样。
    • 数据包是按照服务类型(Type of Service,TOS)被分配到三个波段(band)里面的。TOS是IP头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的
  • red: Random Early Detection,随机早期探测,使用该qdisc时,当单开的占用接近规定的带宽时,系统会随机的丢弃一些数据包,非常适用于高带宽的应用
  • sfq:Stochastic Fairness Queueing,随机公平队列,它会按照会话ID(session ID)为流量进行排序,然后循环按时每个会话的数据包。
  • tbf:Token Bucket Filter,令牌桶过滤器,适用于降低带宽到一个精确配置的速率,很适用于大带宽
    驱动队列
    在IP栈和网络接口控制器之间存在驱动队列。该队列通常使用先进先出的ring buffer来实现(可以认为是一个固定长度的缓冲)。驱动队列不包含任何报文数据,仅包含指向其他数据结构(socket kernel buffers,简称SKBs)的描述符,SKB包含报文数据,并在整个内核中使用。

qlen : 队列长度
link/ether : mac 地址
inet: 网段
brd: 广播地址
scope: 作用范围

文档更新时间: 2021-02-02 15:04   作者:周国强