MAC

MAC地址,是网卡的物理地址,用十六进制表示,6个byte。
MAC号称全网唯一,相当于一个人的身份证,在通信的时候,虽然有了这个唯一标志,但是也需要其他的网络层,这是因为你去找人的时候,光喊身份证是没有用的,你需要先去相应的地址,比如某个宿舍,然后再喊身份证号码,这样才能定位。
MAC的定位作用范围有限,需要借助其他的网络层。

MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备管理器中或注册表等方式修改,同一网段内的MAC地址必须唯一)。MAC地址采用十六进制数表示,长度是6个字节(48位),分为前24位和后24位。

1、前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
2、后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。

MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧。
CentOS7获取网卡Mac地址
查看网络配置,执行命令:# ifconfig -a
虚拟机Mac地址.png

1639720594380-7f53cb30-c28d-43f2-bb09-2f486a2cb2bd.png

  1. [root@localhost ~]# ifconfig -a
  2. eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  3. inet 192.168.0.88 netmask 255.255.255.0 broadcast 192.168.0.255
  4. inet6 fe80::20c:29ff:fe46:a284 prefixlen 64 scopeid 0x20<link>
  5. ether 00:0c:29:46:a2:84 txqueuelen 1000 (Ethernet)
  6. RX packets 543 bytes 48057 (46.9 KiB)
  7. RX errors 0 dropped 0 overruns 0 frame 0
  8. TX packets 324 bytes 51806 (50.5 KiB)
  9. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  10. lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
  11. inet 127.0.0.1 netmask 255.0.0.0
  12. inet6 ::1 prefixlen 128 scopeid 0x10<host>
  13. loop txqueuelen 0 (Local Loopback)
  14. RX packets 488 bytes 42400 (41.4 KiB)
  15. RX errors 0 dropped 0 overruns 0 frame 0
  16. TX packets 488 bytes 42400 (41.4 KiB)
  17. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  18. virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
  19. inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
  20. ether 52:54:00:21:27:5e txqueuelen 0 (Ethernet)
  21. RX packets 0 bytes 0 (0.0 B)
  22. RX errors 0 dropped 0 overruns 0 frame 0
  23. TX packets 0 bytes 0 (0.0 B)
  24. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  25. virbr0-nic: flags=4098<BROADCAST,MULTICAST> mtu 1500
  26. ether 52:54:00:21:27:5e txqueuelen 500 (Ethernet)
  27. RX packets 0 bytes 0 (0.0 B)
  28. RX errors 0 dropped 0 overruns 0 frame 0
  29. TX packets 0 bytes 0 (0.0 B)
  30. TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo 是 表示主机的回环地址(Loopback Address),这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。
比如 把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。

  1. [root@localhost ~]#
  2. [root@localhost ~]# ip addr
  3. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
  4. link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  5. inet 127.0.0.1/8 scope host lo
  6. valid_lft forever preferred_lft forever
  7. inet6 ::1/128 scope host
  8. valid_lft forever preferred_lft forever
  9. 2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
  10. link/ether 00:0c:29:46:a2:84 brd ff:ff:ff:ff:ff:ff
  11. inet 192.168.0.88/24 brd 192.168.0.255 scope global eno16777736
  12. valid_lft forever preferred_lft forever
  13. inet6 fe80::20c:29ff:fe46:a284/64 scope link
  14. valid_lft forever preferred_lft forever
  15. 3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
  16. link/ether 52:54:00:21:27:5e brd ff:ff:ff:ff:ff:ff
  17. inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
  18. valid_lft forever preferred_lft forever
  19. 4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
  20. link/ether 52:54:00:21:27:5e brd ff:ff:ff:ff:ff:ff
  21. [root@localhost ~]#

image.png

MAC地址

IP地址上一行的link/ether 70:1c:e7:30:5d:fe brd ff:ff:ff:ff:ff:ff 表示MAC地址,是网卡的物理地址,用十六进制表示,6个byte。MAC号称全网唯一,相当于一个人的身份证,在通信的时候,虽然有了这个唯一标志,但是也需要其他的网络层,这是因为你去找人的时候,光喊身份证是没有用的,你需要先去相应的地址,比如某个宿舍,然后再喊身份证号码,这样才能定位。MAC的定位作用范围有限,需要借助其他的网络层。

网络设备状态标识

再上面一行,这个叫作net_device flags,网络设备状态标识。

  • UP 表示网卡处于启动的状态;
  • BROADCAST 表示这个网可以发送广播包;MULTICAST 表示网卡可以发送多播;
  • LOWER_UP表示网线插着;
  • MTU1500是指最大传输单元 MTU 为 1500,这是以太网的默认值。MTU 是二层 MAC 层的概念。

    1. MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。<br /> 正文里面有 IP 的头、TCPHTTP的头。如果放不下,就需要分片来传输。<br />qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc ( 排队规则 ) 把数据包加入 队列。 最简单的 qdisc pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast 稍微复杂一些,它的队列包括三个波段 ( band ) 。在每个波段里面,使用先进先出 规则。 三个波段 ( band ) 的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面 有数据包,系统就不会处理 band 1 里面的数据包,band 1 band 2之间也是一样。 数据包是按照服务类型 ( Type of ServiceTOS ) 被分配多三个波段 ( band ) 里面的。TOS IP 里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。 然而这里是mq,还木有搞懂是什么样的队列处理方式。 lo中的fq_codel是多队列处理,每一个数据流都有一个队列处理。