美文网首页
Linux的TCP/IP 网络工具

Linux的TCP/IP 网络工具

作者: LeaveStyle | 来源:发表于2018-12-28 11:29 被阅读9次

Linux上查看主机的IP地址命令是啥?ifconfig,如果只知道这个话面试时就完蛋了,说明只会Linux简单的命令,而且是慢慢要过时的命令。首先要了解Linux的TCP/IP的两大网络工具:net-tools和iproute2.

net-tools和iproute2历史

如今很多系统管理员依然通过组合使用诸如ifconfig、route、arp和netstat等命令行工具(统称为net-tools)来配置网络功能,解决网络故障。net-tools起源于BSD的TCP/IP工具箱,后来成为老版本Linux内核中配置网络功能的工具。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。

作为网络配置工具的一份子,iproute2的出现旨在从功能上取代net-tools。net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。抛开性能而言,iproute2的用户接口比net-tools显得更加直观。比如,各种网络资源(如link、IP地址、路由和隧道等)均使用合适的对象抽象去定义,使得用户可使用一致的语法去管理不同的对象。更重要的是,到目前为止,iproute2仍处在持续开发中。

如果你仍在使用net-tools,而且尤其需要跟上新版Linux内核中的最新最重要的网络特性的话,那么是时候转到iproute2的阵营了。原因就在于使用iproute2可以做很多net-tools无法做到的事情。

当然这两个工具在大部分Linux系统中自带的,下面通过iproute2的 ip addr show 指令看看返回了哪些内容。

ip addr show

root@test:~# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0a:35:3e:c7:79:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.17.128/24 brd 192.168.17.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::e21b:33b0:68b2:6f05/64 scope link
       valid_lft forever preferred_lft forever
  • 在 IP 地址的后面有个scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外 的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。
  • lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机 通信,经过内核处理后直接返回,不会在任何网络中出现。
  • link/ether 0a:35:3e:c7:79:60 brd ff:ff:ff:ff:ff:ff 这个指的是就是MAC地址,MAC地址比较形象的比喻:MAC地址好比人的身份证号,全球唯一,ip好比你的住宿地址,经常发生变化,我只有拿着这个人的MAC地址和ip地址才能找到这个人并确定是不是他。MAC地址不理解的可以去看这篇文章:你真的了解[网卡][路由器]吗?
  • < BROADCAST,MULTICAST,UP,LOWER_UP > 是干什么 的?这个叫作net_device flags网络设备的状态标识
    BROADCAST 表示这个网卡有广播地址,可以发送广播包;
    MULTICAST 表示网卡可以发送多播包;
    UP 表示网卡处于启动的状态;
    LOWER_UP 表示 L1 是启动的,也即网线插着呢。
    MTU1500 ? MTU 是二层 MAC 层的概念。MAC 层有 MAC 的 头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节,这是以太网的默认值。正文里面有 IP 的头、 TCP 的头、HTTP 的头。如果放不下,就需要分片来传输。
  • qdisc pfifo_fast 是什么意思呢? qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc(排队规则)把数据包加入队列。
    最简单的 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 头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。

net-tools和iproute2的命令对比

图片源自于百度

相关文章

  • Linux的TCP/IP 网络工具

    Linux上查看主机的IP地址命令是啥?ifconfig,如果只知道这个话面试时就完蛋了,说明只会Linux简单的...

  • linux5-网络

    一、tcp/ip基础 二、linux网络环境配置

  • 浅谈linux中的网络

    linux网络栈和tcp/ip 简单的来说,socket就是对tcp/ip的api接口。通过socket接口,两个...

  • 中兴-SDN软件开发工程师

    了解那些网络协议TCP/IP 简介 TCP/IP头长度 常见的数据集合 Linux 管道的作用 找出文件夹以及自文...

  • 2018-11-09

    Linux内核bug引起Mesos、Kubernetes、Docker的TCP/IP数据包失效 最近发现Linux...

  • Linux网络管理技术

    Linux网络管理技术 OSI七层模型和TCP/IP四层模型 OSI七层参考模型,TCP/IP四层参考模型 OSI...

  • 【PMTU】TCP的MTU探测

    Linux内核默认情况下未开启TCP的MTU探测功能。 想要启用tcp mtu probe, 先要设置ip_no_...

  • nc:多功能网络工具

    nc:多功能网络工具 功能介绍 一个网络工具,可以建立TCP连接,发送UDP数据包。监听任意的TCP和UDP的端口...

  • C1 了解Web及网络基础

    KeyWords: 诞生,网络基础TCP/IP,TCP/IP协议族,TCP/IP的分层管理,TCP/IP通信传输流...

  • 无标题文章

    unix网络编程linux命令行大全tcp/ip三本书编程珠玑

网友评论

      本文标题:Linux的TCP/IP 网络工具

      本文链接:https://www.haomeiwen.com/subject/afcslqtx.html