网络协议:从物理层到MAC层

1 对于几种网络设备的认识

通常我们所说的几层设备中的层就表示此设备所处理的网络协议层的数量,例如:

  • 一层设备----主要代表有集线器(HUB),仅涉及物理层。
  • 二层设备----主要代表有交换机(switch),涉及物理层和MAC层
  • 三层设备----主要代表有路由器(router),涉及物理层、MAC层、网络层。

其中,hub 和 switch 都用于局域网,而 router 可跨局域网。

2 物理层

首先提出一个问题:

若是你和你的小伙伴仅有两台电脑,现在没有网络,而你们一起玩游戏RPG,你有什么办法解决此问题?
-----你所需要的是一根电脑连电脑的网线,这种方式就是一根网线的两个头,分别插在两个电脑的网口中。当时普通网线这样是通不了的,需要水晶头做交叉线,用所谓的1-3、2-6 交叉接法。

水晶头的第1、2和第3、6脚分别起着收、发信号的作用。将一端的 1 号和 3号线、2号线和6号线的位置互换下,就能在物理层实现一端发送信号,另一端接收信号。

当然电脑连电脑,除了网线要交叉外,还需要配置这两台电脑的 IP 地址、子网掩码和默认网关,要两台电脑能够通信,必须将它们配置到同一个子网中。例如192.168.0.1/24 和 192.168.0.2/24。

另外需要注意的是,虽然两台电脑通信只在物理层做了工作,但是电脑之间通信的包必须都是完整的,这也是上面要求配置 ip 相关参数的原因。

那么 3 台 或 3 台以上需要连接在一起呢? 这时候集线器就派上用场了。集线器完全在物理层工作,它将自己收到的没一个字节,都复制到其他端口上去。

3 MAC层(数据链路层)

从上面物理层的讲解可以看出,Hub 采取的是广播的模式,如果每一台电脑发出的包,宿舍的每个电脑都能收到,那就麻烦了。这就需要解决以下几个问题:

  1. 这个包是发给谁的?谁应该接收?
  2. 大家都在发,会不会发生混乱?有没有谁先发,谁后发的规则?
  3. 如果发送的时候出现错误怎么办?

这些问题都是第二层(MAC 层)要解决的问题。

3.1 多路访问规则

MAC 的全称是 Medium Access Control,即媒体访问控制。控制什么呢?其实就是控制在往媒体上发送数据的时候,谁先发、谁后发的问题,防止发生混乱。这需要一些规则来限制,也就是多路访问。一般有以下规则:

  • 方式一:分多个信道。每对用户一个信道,你走你的、我走我的,互不干扰。其学名叫信道划分。
  • 方式二:今天单号出行,明天双号出行。轮着来,计算机术语叫做分时复用。
  • 方式三:不管三七二十一,有事先出门、发现特堵、就回去。错过高峰再出。这个计算机术语叫做随机接入协议。(著名的以太网,就是采用这个方式。

以上解决了媒体接入控制的问题,MAC的问题也就解决好了。

3.2 mac 地址

解决了第二问题,下面我们来解决第一个问题:发给谁,谁接收?这里就需要用到一个物理地址,即mac地址。解决此问题就涉及第二层网络包格式。对于以太网来说,第二层网络包格式如下:


在网络包的最开始是目标 mac 地址和源 mac 地址。接下来是类型,主要是 IP 数据包,然后 ip 里面包含了 tcp、udp 以及 http 等。根据目标 mac 地址,网卡可以判断在数据链路上广播的包是不是自己,若是自己的,则打开 ip 包,传送到网络层,网络层根据目标ip判断是否为自己,若是打开 TCP 包,传递到传输层,传输层再根据端口发送到对应的服务应用。服务应用响应则逆向封装数据包。

3.3 CRC校验

上面网络数据包最后一个项为 CRC,CRC 项就是用校验的,叫做循环冗余校验。通过 XOR 异或算法,来计算整个包是否在发送的过程中出现了错误,主要用来解决第三个问题。

3.4 mac 地址的获取

上述 3.2 节仅解决了问题的一部分,说明了 mac 层的数据包,通过 mac 地址来标定数据包的归属。但是这衍生出来另外一个问题:源 mac 地址就是网卡本身的物理地址,容易取得。但是目标 mac 是目标机器网卡的物理地址,如何获取呢?
这就要用到 一个叫做 ARP 的协议,其全称叫做 地址解析协议(Adress Resolve Protocol),也就是已知 IP 地址,获取 MAC 地址的协议。


在一个局域网内,当知道了目标 IP,要获取目标 mac 的主要步骤如下图所示:

如上图所示,为避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存,当然,在机器可能上线或下线、ip可能更改。所以,ARP 的 mac 地址缓存过一段时间就会过期。其中广而告之的数据包,其具体组成如下:

4 总结

说了这么多,总结以下几点:

  • mac 层是用来解决多路访问的拥堵问题。
  • ARP 通过广播的方式寻找目标 mac地址。并且会缓存一段时间。
  • 交换机是有学习能力的,能够记住谁在那,就不用广播了。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容