1. 程式人生 > >乙太網和wifi協議

乙太網和wifi協議

乙太網和wifi協議

前言

如果你知道”小喇叭開始廣播了”,估計你得有一定的年紀了,開玩笑,小喇叭是很久以前的一個兒童廣播節目.在節目一開始,都是有這樣一段播音:”小朋友,小喇叭廣播開始了!”,聽到這裡,收音機前的小朋友就興奮了起來,準備好聽節目了:本次的內容是乙太網協議與wifi協議.

乙太網和wifi是連結層的兩種協議.在連結層,資訊以幀為單位傳輸.幀就像信封一樣將資料包裹起來,並註明收信地址和送信地址.連結層實現了”本地社群”的通訊.

乙太網的幀格式

幀本事是一段有限的0/1序列.它可以分為頭部,資料和尾部三部分:

Preamble

SFD

DST

SRC

Type

Payload(Data)

Pad

FCS

Extension

幀按照上面的順序從頭到尾依次被髮送/接受.我們下面進一步解釋各個區域.

頭部

幀的最初7byte被稱為序言(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,用以說明資料部分的型別.比如0x0800IPV4,0x0806ARP

資料

資料一般包含有符合更高層協議的資料,比如IP.連線層協議本身並不在乎資料是什麼,它只負責傳輸.注意,資料尾部可能填充有一串0(PAD區域).原因是資料需要超過一定的最小長度.

尾部

跟隨在資料之後的是校驗序列(FCS).檢驗序列是為了檢驗資料的傳輸是否發生錯誤.在物理層,我們通過一些物理訊號來表示0/1序列(比如高壓/低壓,高頻/低頻等),但這寫物理訊號可能在傳輸過程中受到影響,以致於發生錯誤.如何來發現我們的資料是正確的呢?

一個方法是將資料傳送兩次,然後對比一下是否一樣.但是這樣的話,網路的效率就降低了.FCS採用了CRC演算法.這就好像是一家飯店的老闆僱傭了一個收銀員,但是這個老闆擔心收銀員黑錢.老闆就想了一個好方法:只記住收到錢的最後一位(比如收到19,老闆記住9).當有新的進賬(比如13,尾數為3),他就將新的尾數和舊的尾數相加,再記住和的尾數(也就是2).當收銀員交給老闆錢的時候,老闆只用看看總額的最後一位是否和自己記住的最後一位相同,就可以知道收銀員是否誠實了.如果說我們的資料是收銀的總額,我們的FCS就是老闆記錄的尾數.如果兩者不相符,我們就知道資料在傳輸過程中出現了錯誤,不能使用.

上面的比喻實際上是用營業額總額不斷的除以10,獲得最終的尾數.CRC演算法也相類似.n位的CRC演算法取一個n bit的因子,比如下面的1011.資料序列結尾增加n-10.因子與資料序列的不斷進行XOR執行,直到得到n-1位的餘數,也就是100.該餘數個位取反(011),然後儲存在FCS的位置.

000 <--- 資料序列末尾增加3位0
              <--- 因子
000 <--- XOR結果
             <--- 因子
000
 
000
 
000
 
000
 
000
 
000
 
000 
1
-----------------
100 <--- 3位餘數


上面的案例用的是4CRC.Ethernet中使用的因子為32,以達到更好的檢測效果.

集線器(HUB) VS 交換器(Switch)

乙太網使用集線器或者交換器將幀從出發地傳送到目的地.一臺集線器或交換器上有多個埠,每個埠都可以連線一臺計算機(或其他裝置).

集線器一個廣播電臺.一臺電腦將幀傳送到集線器,集線器會將幀發到所有的其他的埠.每臺計算機檢查自己的MAC地址是不是符合DST.如果不是,則保持沉默.集線器是比較早期的乙太網裝置.它有明顯的缺陷:

1.任意兩臺電腦的通訊在同一個乙太網上是公開的.所有連線在同一個集線器上的裝置都能收聽到別人在傳輸什麼,這樣很不安全.可以通過對資訊加密提高安全性.

2.不允許多路同時通訊.如果兩臺電腦同時向集線器發信,集線器會向所有裝置發出”衝突”資訊,提醒發生衝突.可以在裝置上增加衝突檢測演算法:一旦裝置發現有衝突,則隨機等待一段時間再重新發出.

交換器克服了集線器的缺點.交換器記錄有各個裝置的MAC地址.當幀傳送到交換器時,交換器會檢查DST,然後將幀只發送給對應埠.交換器允許多路同時通訊.由於交換器的優越性,交換器基本上取代了集線器.但比較陳舊的乙太網還有可能在使用集線器.

這段視訊很形象的解釋了這兩種裝置

WiFi

WiFi的工作方式與集線器連線下的乙太網類似.一個Wifi裝置會向所有的WiFi裝置傳送幀,其他的WiFi裝置檢查自己是否符合DST.由於wifi採取無線電訊號,所以很難像交換器一樣定時傳送,所以WiFi的安全性很值得關注,WiFi採用的加密的方法來實現資訊的安全性.

(早期的WEP加密方法非常脆弱,建議使用WPA或者WPA2加密方法.隱藏WiFi裝置ID的方法不是很有用.)

總結

我們深入了連結層協議的一些細節.連結層是物理與邏輯的介面,我的設計兼顧了物理需求(比如時鐘復原,CRC)和邏輯需要(比如地址,資料).由於連結層處於網路邏輯的底層,有許多基於連結層的攻擊手段,著需要我們對連結層的工作方式有一定的的瞭解,以設計出更好的網路安全策略.

相關推薦

乙太網wifi協議

乙太網和wifi協議 前言 如果你知道”小喇叭開始廣播了”,估計你得有一定的年紀了,開玩笑,小喇叭是很久以前的一個兒童廣播節目.在節目一開始,都是有這樣一段播音:”小朋友,小喇叭廣播開始了!”,聽到這裡,收音機前的小朋友就興奮了起來,準備好聽

乙太網WIFI無線)

ifconfig eth0 顯示一個乙太網卡的配置 ifup eth0 啟用一個 'eth0' 網路裝置 ifdown eth0 禁用一個 'eth0' 網路裝置 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址 

UDP千兆乙太網FPGA_verilog實現(四、程式碼前期準備-UDPIP協議構建)

UDP:user Datagram protocol 使用者資料報協議 無連線的傳輸層協議,提供面向事務的簡單不可靠資訊傳送服務,IETF RFC 768是UDP的正式規範。UDP在IP報文的協議號是17(0x11) UDP協議的主要作用是將網路資料流量壓縮成資料包的形式。一個典型的資料包就

TCP協議用在pythonwifi模組之間

 python建立TCP連線需要用到socket協議。   如果是TCP Server,建立TCP連線的步驟是:1.建立socket套接字2.繫結(bind())本地的ip地址和埠號3.監聽埠(listen),如果有socket連線,便接收(accept)。   如果是TC

理解TCPUDP協議

還要 資源 tcp 協議 code 長時間 tcp連接 一對多 客戶機 情況 目錄 TCP 協議 UDP協議 TCP和UDP的區別 TCP和UDP的使用場景 一 TCP協議 1.TCP的頭部格式 理解TCP協議,首要的就是TCP協議的頭部格式 ·

使用網絡監視器(IRSI)捕捉分析協議數據包

命令 net 開頭 下載 類型 封裝 源地址 記錄 .net 轉載請註明原地址。 實驗名稱: 理解子網掩碼、網關和ARP協議的作用 一、實驗目的和要求 (1) 熟悉IRIS的使用 (2) 驗證各種協議數據包格式 (

初識Socket通信:基於TCPUDP協議學習網絡編程

auth bsp servers 客戶 name 本地 監聽 max ava 學習筆記: 1.基於TCP協議的Socket網絡編程:   (1)Socket類構造方法:在客戶端和服務器端建立連接     Socket s = new Socket(hostName,port

關於URLhttp協議,http消息格式

new chrome 中文名 ring 傳說 socket實現 tex tcp 資訊 轉自:http://crystal2012.iteye.com/blog/1447845 在WWW(全球資訊網)中想要連結到某個網頁,便需要給瀏覽器一個位址,而URL在此的功能就是告知瀏覽

tomcat服務器http協議筆試題

完成 響應狀態 webapp html tro inf 修改 -1 結構 tomcat與web程序結構與Http協議與HttpUrlConnection 考查的知識點:tomcat服務器相關信息 1.下面關於tomcat服務器描述正確的是() (難度A) A. tomcat

HTML5HLS協議兩種技術完美結合解決移動端網頁播放問題

html5 hls、網頁直播 什麽是HTML5 我們需要先了解一下HTML是什麽。HTML的英文全稱為Hyper Text Markup Language,即超文本標記語言。HTML5是HTML的一個新版本。HTML 不是一種編程語言,而是一種標記語言 (markup language)。HTML5

STUNTURN協議解析

use 穿透 環境 tcp協議 域名 未收到 判斷 求一個 p地址 在現實Internet網絡環境中,大多數計算機主機都位於防火墻或NAT之後,只有少部分主機能夠直接接入Internet。很多時候,我們希望網絡中的兩臺主機能夠直接進行通信,即所謂的P2P通信,而不需要其他公

TCP/IP模型及OSI七層參考模型各層的功能主要協議

tft 連接 app 控制文件 物理層 ast 進制 文件系統 alt 註:網絡體系結構是分層的體系結構,學術派標準OSI參考模型有七層,而工業標準TCP/IP模型有四層。後者成為了事實上的標準,在介紹時通常分為5層來敘述但應註意TCP/IP模型實際上只有四層。 1

Iptables常用配置常用協議端口

iptables由於在服務器部署時,為了方便部署,把本機的iptables都關上了,然後還手欠的保存了設置,再想找回來是不可能了,那就重新設置一些適合我的防火墻策略吧!如果你使用遠程連接到你的服務器,那麽ssh端口是不可少的,不要把自己關在外面!ssh默認端口號是22,可以通過/etc/sshd/sshd.c

00105_UDPTCP協議

數據 完整 tcp 三次 使用 image 即使 protocol 安全性 1、UDP協議   (1)UDP是User Datagram Protocol的簡稱,稱為用戶數據報協議;   (2)UDP是無連接通信協議,即在數據傳輸時,數據的發送端和接收端不建立邏輯連接;  

(三)GETPOST協議詳解

str 打印 http 類別 多個 表現 pro 版本 prot 一、GET請求報文分析: 1、 請求行:   a) GET(描述該請求采用了什麽請求方法),HTTP協議中包含8種請求方法: GET 請求獲取Request-URI 所標識的資源 POST

9、網絡知識(路由交換ARP協議)+配置單網卡多ip配置默認路由

路由交換 ARP協議 網絡配置網絡知識詳解 提問:網絡到底是什麽?我們在電纜中傳輸的都是電信號(高電壓或者是低電壓),所以高電壓就是1,低電壓就是0,所以規定一定的時間傳輸固定的高低電壓來當做是接收的數據我們所謂的10Mbps:每秒中可以傳輸10M個bit所以別人說你的是4M的帶寬,指的就是4Mbps,要除

HTTPHTTPS協議有什麽不同之處

不同之處 style AR 通過 詳細 transfer pos 萬維網 log 定義: HTTP(hypertext transfer protocol)是超文本傳輸協議,是一種用來詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網文檔的

TCP的揮手協議握手協議

自己 -s style 分析 建立 丟失 size lai 透明 三次握手協議:三次握手協議的主要過程是交互彼此之間的初始序列號,如果沒有確認的ACK幀可以麽?肯定是可以的 client A -------> server B client A 發送了自己的初始序列號

ZigBeeWiFi有什麽區別 各自有什麽優勢

比較 形狀 自己 建立 模塊 無線網卡 定位 通過 無線數傳模塊 ZigBee是一個由可多到65000個無線數傳模塊組成的一個無線數傳網絡平臺,十分類似現有的移動通信的CDMA網或GSM網,每一個ZigBee網絡數傳模塊類似移動網絡的一個基站,在整個網絡範圍內,它們之間可以

動態路由實現OSPFRIP協議實現全網互連互通

靜態 nom 匯總 red nag 過程 mat dia 工作 動態路由: 是指路由器能夠自動地建立自己的路由表,並且能夠根據實際情況的變化適時地進行調整。 原理: 動態路由機制的運作依賴路由器的兩個基本功能:路由器之間適時的路由信息交換,對路由表的維護: 路由器之間適時地