对于OSI的考据癖(一)

前言

起因于今日,无线网络出了些故障。俺的小本本ping网关竟然ping值在1-100ms之间波动,这种波动对于802.11ac来说,是极为不合理的。

话说,俺多天前购入了一台小米路由器Mini版,雷厂长的东西还是蛮不错的。到手后,刷了OpenWRT,用于扶墙服务,两个无线接口,5G频段另一个用于工作,且与两个内网口作了bridge,2.4G用于他人蹭网,并与俺的办公网用iptables做了隔离。

抓包引发的血案

网络民工啥不会,出了问题就只能抓包了,首先连在wifi底下抓个包。
接着在直接通过双绞线直接相连的主机抓个包。
我们都知道,双绞线直连的网络必然是Ethernet(802.3)网络,而Wi-Fi网络必然是802.11ac啦。但是两种网络抓包的结果竟然惊人的相似,只有三个字段,源地址,目的地址以及类型Type字段。

那么问题来了,当年我渣渣学校的老板们,不是说,Ethernet还有前导码,CRC之类的东西嘛?这些东西为啥都没有,好吧,802.11ac没有,那至少802.3应该有吧?不过似乎我没有看到,切到Linux底下,依然没有。

重拾以太网

啥叫以太网,原创的帖子就不再跟随民科们学习所谓的世界一流大学的教材了。维基百科里面有说

Ethernet /ˈθərnɛt/ is a family of computer networking technologies for local area networks (LANs) and metropolitan area networks (MANs). It was commercially introduced in 1980 and first standardized in 1983 as IEEE 802.3,[1] and has since been refined to support higher bit rates and longer link distances. Over time, Ethernet has largely replaced competing wired LAN technologies such as token ring, FDDI, and ARCNET. The primary alternative for contemporary LANs is Wi-Fi, a wireless LAN standardized as IEEE 802.11.

 几个关键点,第一个Ethernet是一种LAN和MAN技术,在IEEE802.3中被标准化。Ethernet已经取代了token ring等技术成为了有线LAN的主力军。无线LAN技术叫做Wi-Fi,即802.11。

看这个定义的话,Token-Ring应该与Ethernet等价喽。

过时的Token Ring

等等,那MAC又跟Ethernet和Token-Ring啥关系。带着两个问题继续追维基百科。
Token ring local area network (LAN) technology is a communications protocol for local area networks. It uses a special three-byte frame called a "token" that travels around a logical "ring" of workstations or servers. This token passing is a channel access method providing fair access for all stations, and eliminating the collisions of contention-based access methods.
Introduced by IBM in 1984, it was then standardized with protocol IEEE 802.5 and was fairly successful, particularly in corporate environments, but gradually eclipsed by the later versions of Ethernet.
解读一下,几个关键点,这个令牌环也是一种LAN技术。其在IEEE802.5中被定义。不过后来被Ethernet挖了墙角。

等等,802.5是token ring,802.3是Ethernet,802.11是Wi-Fi,那为啥都是802多少?那MAC又是什么?那Data Link Layer又是什么?

关于802.XYZ

那么这个802
IEEE 802 refers to a family of IEEE standards dealing with local area networks and metropolitan area networks. More specifically, the IEEE 802 standards are restricted to networks carrying variable-size packets. By contrast, in cell relay networks data are transmitted in short, uniformly sized units called cells.
 解读下:802是一组IEEE的标准罢了,这个标准主要定义了LAN与MAN。这些802标准们都有一个共同点,可以携带变长数据包。而与之相反的叫做cell relay network,这种网络用来传输短和固定大小的数据包,成为cells。

那这个意思很简单啦,简单来说,802.1---N都叫做LAN/MAN标准,因此,Ehthernet,Wi-Fi, Token Ring都能被称为LAN/MAN啦。

那么802下面还有些啥,可以来这里(Chs)这里(Eng)瞅瞅先。其实802家族是个庞大的分支,大概了解就好。下图也能看出一些大概,摘自IEEE 802 规范2014版本。



802.1 Higher Layer LAN Protocols
        802.1d STP
        802.1q VLAN
        802.1x  Port Based Network Access Control(锐捷就是基于这家伙的变种)
802.3 Ethernet(CSMA/CD)
        802.3u 100BASE-TX, 100BASE-T4, 100BASE-FX Fast Ethernet at 100 Mbit/s
        802.3ab 1000BASE-T Gbit/s Ethernet over twisted pair at 1 Gbit/s
        802.ae 10 Gigabit Ethernet over fiber; 10GBASE-SR, 10GBASE-LR, 10GBASE-ER, 10GBASE-SW, 10GBASE-LW, 10GBASE-EW
802.4 Token Bus
802.11 Wireless LAN (WLAN) & Mesh (Wi-Fi certification)

实际上,在讲深几句,我们所谓的快速以太网或者百兆以太网都是很不准确的。

来个例子,802.3u定义了快速以太网的几种实现机制100BASE-TX, 100BASE-T4, 100BASE-FX,当然,不止这些,实际上还有100BASE-FX,100BASE-SX等,前面几种都是基于双绞线的实现方式,而后面几种是用光纤进行传递的。因此,100兆网既可以跑电(铜线),又可以跑光,取决于采用802.3u的哪种实现。

再啰嗦一句,100BASE-TX,一般100指传输速率,BASE指用baseline频率传输,T指twisted coax,X一般用作placeholder或者用来指明编码方式。

在来个例子,假设说,千兆网的叫法,仅仅指传输速率,其实非常不准确。802.3ae定义了1000BASE-T,802.3z定义了1000BASE-CX, 1000BASE‑LX等。其中1000BASE-CX可以用DE-9接口,也可以用8P8C(RJ45)口。而1000BASE-LX跑在单模或者多模光纤的某光参数下。

再举个例子,我们最常用的百兆网的组网100BASE-TX,也是类似的定义了许多规范。譬如连接线必须cat5,8P8C用哪四根传数据,每个数据包最长传输距离100meter,全双工下,单向数据实现100Mbps速率。

With 100BASE-TX hardware, the raw bits (4 bits wide clocked at 25 MHz at the MII) go through 4B5B binary encoding to generate a series of 0 and 1 symbols clocked at 125 MHz symbol rate. The 4B5B encoding provides DC equalization and spectrum shaping (see the standard for details). Just as in the 100BASE-FX case, the bits are then transferred to the physical medium attachment layer using NRZI encoding. However, 100BASE-TX introduces an additional, medium dependent sublayer, which employs MLT-3 as a final encoding of the data stream before transmission, resulting in a maximum "fundamental frequency" of 31.25 MHz. The procedure is borrowed from the ANSI X3.263 FDDI specifications, with minor discrepancies。
懒得翻译了,讲了如何编码等。

当然,作为网路民工,再看看802.3这个重要得不能再重要的规范吧。

IEEE 802.3 is a working group and a collection of IEEE standards produced by the working group defining the physical layer and data link layer's media access control(MAC) of wired Ethernet. This is generally a local area network technology with some wide area network applications. Physical connections are made between nodes and/or infrastructure devices 

大概就是说,802.3这样的工作组和规范,定义了Physical Layer和Data Link Layer的MAC。方才分析100BASE-TX这个东西的时候,想必大家已经看到了Physical Layer实际上也是由802.3来约束的。因此以太网是一个并非一个Data Link Layer的协议,而是一个Physical Layer和Data Link Layer的协议。

所以,哎,不得不批判这个大学的教育呀。又有多少老师,能分析到这个层面呢?其实,在俺们系是有的,我也从他那里学到了不少的知识,极大地丰富了我对于网络的理解。在这里也是十分感谢!



No comments:

Post a Comment