以太网和wifi协议

以太网和wifi协议

前言

如果你知道”小喇叭开始广播了”,估计你得有一定的年纪了,开玩笑,小喇叭是很久以前的一个儿童广播节目.在节目一开始,都是有这样一段播音:”小朋友,小喇叭广播开始了!”,听到这里,收音机前的小朋友就兴奋了起来,准备好听节目了:本次的内容是以太网协议与wifi协议.

以太网和wifi是链接层的两种协议.在链接层,信息以帧为单位传输.帧就像信封一样将数据包裹起来,并注明收信地址和送信地址.链接层实现了”本地社区”的通信.

以太网的帧格式

帧本事是一段有限的0/1序列.它可以分为头部,数据和尾部三部分:


Preamble


SFD


DST


SRC


Type


Payload(Data)


Pad


FCS


Extension

帧按照上面的顺序从头到尾依次被发送/接受.我们下面进一步解释各个区域.

头部

帧的最初7个byte被称为序言(preamble).它的每个byte都是0xAA(这里是十六进制,也就是二进制的10101010).通常,我们都会预定好以一定的频率发送0/1序列(比如每秒10bit).如果接收设备以其他频率接受(比如每秒5bit),那么就会错漏掉应该接受的0/1信息.但是,由于网卡的不同,发送方和接收方即使预定的频率相同,两者也可能由于物理原因发生偏差.这就好像两个人约好的10点见面,结构一个人的表快了,一个人的表慢了.序言是为了让接收设备调整接受频率,以便于发送设备的频率一致,这个过程就叫做时钟复原.

就像在听收音机之前,调整转钮,知道声音清晰.网卡会在接受序言的过程中不断微调自己的接收频率,知道自己听到的是...1010...

时钟调整好以后,我们等待帧的起始信号(SFD).SFD是固定的值0xAB.这个0xAB就好像”小喇叭开始广播了”一样,提醒我们节目马上上演.

紧随SFD之后的是6 byte的目的地(DST)和6byte的发出地(SRC),这就是我们开始说的目的地和出发地.要注意,这里写在信封上的是对地址的”本地描述”,也就是MAC地址.MAC地址是物理设备自带的序号,只能在同一个以太网中被识别(正如邮差只熟悉自己的社区一样).

头部的最后一个区域是Type,用以说明数据部分的类型.比如0x0800位IPV4,0x0806为ARP

数据

数据一般包含有符合更高层协议的数据,比如IP包.连接层协议本身并不在乎数据是什么,它只负责传输.注意,数据尾部可能填充有一串0(PAD区域).原因是数据需要超过一定的最小长度.

尾部

跟随在数据之后的是校验序列(FCS).检验序列是为了检验数据的传输是否发生错误.在物理层,我们通过一些物理信号来表示0/1序列(比如高压/低压,高频/低频等),但这写物理信号可能在传输过程中受到影响,以致于发生错误.如何来发现我们的数据是正确的呢?

一个方法是将数据发送两次,然后对比一下是否一样.但是这样的话,网络的效率就降低了.FCS采用了CRC算法.这就好像是一家饭店的老板雇佣了一个收银员,但是这个老板担心收银员黑钱.老板就想了一个好方法:只记住收到钱的最后一位(比如收到19元,老板记住9).当有新的进账(比如13,尾数为3),他就将新的尾数和旧的尾数相加,再记住和的尾数(也就是2).当收银员交给老板钱的时候,老板只用看看总额的最后一位是否和自己记住的最后一位相同,就可以知道收银员是否诚实了.如果说我们的数据是收银的总额,我们的FCS就是老板记录的尾数.如果两者不相符,我们就知道数据在传输过程中出现了错误,不能使用.

上面的比喻实际上是用营业额总额不断的除以10,获得最终的尾数.CRC算法也相类似.n位的CRC算法取一个n bit的因子,比如下面的1011.数据序列结尾增加n-1个0.因子与数据序列的不断进行XOR运行,直到得到n-1位的余数,也就是100.该余数个位取反(011),然后存储在FCS的位置.

000 <--- 数据序列末尾增加3位0
              <--- 因子
000 <--- XOR结果
             <--- 因子
000

000

000

000

000

000

000
1
-----------------
100 <--- 3位余数

上面的案例用的是4位CRC.在Ethernet中使用的因子为32位,以达到更好的检测效果.

集线器(HUB) VS 交换器(Switch)

以太网使用集线器或者交换器将帧从出发地传送到目的地.一台集线器或交换器上有多个端口,每个端口都可以连接一台计算机(或其他设备).

集线器像一个广播电台.一台电脑将帧发送到集线器,集线器会将帧发到所有的其他的端口.每台计算机检查自己的MAC地址是不是符合DST.如果不是,则保持沉默.集线器是比较早期的以太网设备.它有明显的缺陷:

1.任意两台电脑的通信在同一个以太网上是公开的.所有连接在同一个集线器上的设备都能收听到别人在传输什么,这样很不安全.可以通过对信息加密提高安全性.

 

2.不允许多路同时通信.如果两台电脑同时向集线器发信,集线器会向所有设备发出”冲突”信息,提醒发生冲突.可以在设备上增加冲突检测算法:一旦设备发现有冲突,则随机等待一段时间再重新发出.

交换器克服了集线器的缺点.交换器记录有各个设备的MAC地址.当帧发送到交换器时,交换器会检查DST,然后将帧只发送给对应端口.交换器允许多路同时通信.由于交换器的优越性,交换器基本上取代了集线器.但比较陈旧的以太网还有可能在使用集线器.

http://v.youku.com/v_show/id_XNDgwNTQ5OTI4.html

这段视频很形象的解释了这两种设备

WiFi

WiFi的工作方式与集线器连接下的以太网类似.一个Wifi设备会向所有的WiFi设备发送帧,其他的WiFi设备检查自己是否符合DST.由于wifi采取无线电信号,所以很难像交换器一样定时发送,所以WiFi的安全性很值得关注,WiFi采用的加密的方法来实现信息的安全性.

(早期的WEP加密方法非常脆弱,建议使用WPA或者WPA2加密方法.隐藏WiFi设备ID的方法不是很有用.)

总结

我们深入了链接层协议的一些细节.链接层是物理与逻辑的接口,我的设计兼顾了物理需求(比如时钟复原,CRC)和逻辑需要(比如地址,数据).由于链接层处于网络逻辑的底层,有许多基于链接层的攻击手段,着需要我们对链接层的工作方式有一定的的了解,以设计出更好的网络安全策略.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-30 06:26:05

以太网和wifi协议的相关文章

协议学习之 vamei博客系列 02 小喇叭开始广播 (以太网与WiFi协议)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! “小喇叭开始广播啦”,如果你知道这个,你一 定是老一辈的人.“小喇叭”是五十年代到八十年代的儿童广播节目.在节目一开始,都会有一段这样的播音:“小朋友,小喇叭开始广播了!” 听到这里,收音机前的小朋友就兴奋起来,准备好听节目了:这一期的内容是以太网(Ethernet)协议与WiFi. 我们在邮差与邮局中说到,以太网和WiFi是连接层的两种协议.在连接层,信息以帧(frame)为单

白话以太网7层协议

引用自:http://sns.ca800.com/space.php?uid=45706&do=blog&id=5954 白话以太网7层协议 3f43b[中国自动化网社区]c82002[http://sns.ca800.com]74ae93 今 天我将用大家都能理解的比喻形式把以太网的协议层的概念讲解清楚.大家在上大学期间应该会接触网络基础这门课程,在那里边会提到以太网的7层协议,工控的 技术人员很少会对此深究,只是作为基础掌握一些知道有哪几层就可以了,至于是干什么起什么作用,就不是很清楚

协议学习之 vamei博客系列 总结

1. 分层: 物理层(physical layer) 所谓的物理层,是指光纤.电缆或者电磁波等真实存在的物理媒介.这些媒介可以传送物理信号,比如亮度.电压或者振幅.对于数字应用来说,我们只需要两种物理信号来分别表示0和1,比如用高电压表示1,低电压表示0,就构成了简单的物理层协议.针对某种媒介,电脑可以有相应的接口,用来接收物理信号,并解读成为0/1序列. 连接层(link layer) 在连接层,信息以帧(frame)为单位传输.所谓的帧,是一段有限的0/1序列.连接层协议的功能就是识别0/1

[转]协议森林

[转]协议森林 转自:Vamei的协议森林 2015-07-01 互联网是为了通信,通信又依赖于协议.我们交谈时,要符合语法和用语规范.机器之间的通话也要符合协议.否则,鸡同鸭讲,无法相互理解.“协议森林”是我的一系列关于网络协议的文章,总结了多个网络协议. 网络协议属于技术,但深受政策与历史的影响.Ethernet, IP, UDP, TCP, HTTP, DNS... 这些协议形成茂密的树林,盘根错节.协议之间有时合作,有时竞争,有时弱肉强食的取代.了解网络分层,是理解这个森林的第一步.而森

协议森林

互联网的目的是为了实现通信,而通信的基础是有一套行之有效的网络协议.正如我们在交谈的时候需要符合一定的语法和用语规范一样,机器之间的通话也必须符合协议.否则,每一台机器各说各的,永远也无法相互理解."协议森林"是我已经开始写的一系列关于网络协议的文章,希望能对这个错综复杂的森林进行一个简单的总结. 网络协议是技术,但又关乎设计与历史.Ethernet, IP, UDP, TCP, HTTP, DNS... 这些协议像是一片茂密的树林,盘根错节.协议之间相互关联,有时合作,有时竞争,有时

网络协议目录

协议森林 作者:Vamei 出处:http://www.cnblogs.com/vamei%20 posted @ 2012-12-05 12:20 Vamei 互联网是为了通信,通信又依赖于协议.我们交谈时,要符合语法和用语规范.机器之间的通话也要符合协议.否则,鸡同鸭讲,无法相互理解.“协议森林”是我的一系列关于网络协议的文章,总结了多个网络协议. 网络协议属于技术,但深受政策与历史的影响.Ethernet, IP, UDP, TCP, HTTP, DNS... 这些协议形成茂密的树林,盘根

TCP-IP协议、状态详解

今天对TCP-IP协议做一个简单总结.以便日后自己查看. 本文通过两个图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道. 如图1所示,给出了TCP通信过程的示意图. 图1主要包括三部分:建立连接.传输数据.断开连接 一.概述: 1)建立TCP连接很简单,通过三次握手便可建立连接. 2)建立好连接后,开始传输数据.TCP数据传输牵涉到的概念很多:超时重传.快速重传.流量控制.拥塞控制等等. 3)断开连接的过程也很简单,通过四次握手完成断

程序员的自我修养(2)——计算机网络

转:http://kb.cnblogs.com/page/211867/ 几乎所有的计算机程序,都会牵涉到网络通信.因此,了解计算机基础网络知识,对每一个程序员来说都是异常重要的. 本文在介绍一些基础网络知识的同时,给出了一些高质量的系列文章链接,以方便大家随时参考学习.相信通过本文的学习,你能对计算机网络有全面的认识! 在阅读本文之前,建议阅读以下两遍文章,以便对”计算机网络是如何工作”的有个大概的了解. 互联网协议入门(一) 互联网协议入门(二) 接下来,我们介绍一些基础网络知识. OSI参

Socket与网站保密应用 (隐藏链接的视频下载)

Flash Socket应用 页面使用 Socket 底层传输数据的方便比传统的 HTTP 协议更隐秘,浏览器基本不对基于 TCP 通信的 Socket 进行监测,因此也无法通过浏览器提供的开发者工具来探测网站的受保护数据.例如,音悦台网站上的高铃 - 爱してる-高清[MV],其视频内容通过 Socket 进行传输,浏览者根本发现不了其视频数据,也无法找到浏览器有缓存到数据. 打开视频网页: http://v.yinyuetai.com/video/37962 但,使用其他工具还是可以找到服务器