戰(zhàn):從編碼調(diào)制到網(wǎng)線光纖故障排查)
1. 物理層到底在解決什么問(wèn)題很多人學(xué)計(jì)算機(jī)網(wǎng)絡(luò)一上來(lái)就被OSI七層模型砸懵背完“物數(shù)網(wǎng)傳會(huì)表應(yīng)”就以為自己懂了結(jié)果一問(wèn)“物理層到底干什么”腦子里只?!皞鞅忍亍薄N覄傞_(kāi)始學(xué)的時(shí)候也這樣直到后來(lái)做嵌入式設(shè)備調(diào)試被一根網(wǎng)線折騰了整整兩天才真正理解物理層不是課本上那幾行定義而是所有網(wǎng)絡(luò)通信的物理地基。物理層位于OSI參考模型的最底層它的核心任務(wù)只有一句話把上層交下來(lái)的比特流通過(guò)物理介質(zhì)從一個(gè)節(jié)點(diǎn)送到另一個(gè)節(jié)點(diǎn)。聽(tīng)起來(lái)簡(jiǎn)單但“送過(guò)去”這三個(gè)字背后藏著一堆工程問(wèn)題——用什么信號(hào)表示0和1信號(hào)在銅纜里衰減了怎么辦兩臺(tái)設(shè)備的速率不一致怎么協(xié)調(diào)時(shí)鐘對(duì)不齊導(dǎo)致采樣錯(cuò)位怎么解決這些問(wèn)題不解決上層協(xié)議寫(xiě)得再漂亮都是空中樓閣。這篇文章適合誰(shuí)看如果你是計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生正在啃計(jì)算機(jī)網(wǎng)絡(luò)教材但覺(jué)得物理層太抽象如果你是剛?cè)胄械倪\(yùn)維或嵌入式開(kāi)發(fā)者需要理解網(wǎng)線、光纖、串口這些底層通信的脾氣或者你只是好奇“網(wǎng)線里到底跑的是什么”那這篇內(nèi)容應(yīng)該能幫你把物理層從“背誦知識(shí)點(diǎn)”變成“真正理解它在干嘛”。我寫(xiě)這篇的出發(fā)點(diǎn)很簡(jiǎn)單市面上大部分教材把物理層講成了公式和定義的堆砌但實(shí)際工作中你需要的不是背奈奎斯特公式而是理解為什么Cat5e網(wǎng)線跑千兆只能到100米、為什么串口通信要約定波特率、為什么光纖分單模多模。這些才是真正影響你干活的東西。2. 物理層的核心概念拆解2.1 數(shù)據(jù)通信的基礎(chǔ)模型物理層討論通信繞不開(kāi)一個(gè)最基本的模型信源、信道、信宿。信源是發(fā)送方信宿是接收方信道是中間傳輸?shù)耐ǖ?。這個(gè)模型看著簡(jiǎn)單但它決定了物理層所有問(wèn)題的出發(fā)點(diǎn)——信號(hào)從信源出發(fā)經(jīng)過(guò)信道到達(dá)信宿中間會(huì)發(fā)生什么信道分兩種模擬信道和數(shù)字信道。模擬信道傳輸連續(xù)變化的信號(hào)比如傳統(tǒng)電話線數(shù)字信道傳輸離散的信號(hào)比如網(wǎng)線里跑的方波。但注意即使是數(shù)字信道物理介質(zhì)上跑的本質(zhì)上還是模擬的電磁波或光波只不過(guò)我們用高低電平或光的有無(wú)來(lái)表示離散的0和1。這里有個(gè)容易混淆的點(diǎn)基帶傳輸和寬帶傳輸?;鶐鬏斁褪侵苯影褦?shù)字信號(hào)方波送上線路不經(jīng)過(guò)調(diào)制以太網(wǎng)網(wǎng)線大部分是這種方式寬帶傳輸是把數(shù)字信號(hào)調(diào)制到高頻載波上有線電視網(wǎng)絡(luò)就是典型。基帶傳輸簡(jiǎn)單直接但傳輸距離受限寬帶傳輸復(fù)雜但能在一根線上跑多路信號(hào)。還有一個(gè)概念叫碼元這個(gè)必須搞清楚。碼元是承載信息的基本信號(hào)單位一個(gè)碼元可以攜帶1個(gè)或多個(gè)比特。如果只用兩種電平高/低一個(gè)碼元攜帶1比特如果用四種電平一個(gè)碼元就能攜帶2比特。這就是為什么同樣波特率下不同的編碼方式能跑出不同的比特率。2.2 信道的極限容量奈奎斯特與香農(nóng)物理層有一個(gè)殘酷的現(xiàn)實(shí)信道不是無(wú)限的。你不可能在一條網(wǎng)線上無(wú)限提高傳輸速率有兩個(gè)硬性約束卡著你。第一個(gè)是奈奎斯特準(zhǔn)則它針對(duì)的是理想無(wú)噪聲信道。公式是C 2 × W × log2(V)其中C是極限比特率bpsW是信道帶寬HzV是碼元的離散電平數(shù)。這個(gè)公式告訴我們帶寬越寬能用的電平數(shù)越多極限速率就越高。但電平數(shù)不能無(wú)限增加因?yàn)殡娖皆蕉嗝總€(gè)電平之間的差距越小接收端越難區(qū)分。第二個(gè)是香農(nóng)公式它針對(duì)的是有噪聲信道C W × log2(1 S/N)S/N是信噪比。這個(gè)公式更貼近現(xiàn)實(shí)因?yàn)槿魏握鎸?shí)信道都有噪聲。香農(nóng)公式揭示了一個(gè)關(guān)鍵結(jié)論信噪比越低極限速率越低。這就是為什么老式電話線信噪比差跑不了高速率而光纖信噪比極高能跑Tbps級(jí)別。我實(shí)測(cè)過(guò)一個(gè)場(chǎng)景用一段質(zhì)量很差的超五類(lèi)網(wǎng)線跑千兆長(zhǎng)度大概80米結(jié)果丟包率飆升。用網(wǎng)線測(cè)試儀一看近端串?dāng)_NEXT指標(biāo)嚴(yán)重超標(biāo)。這就是香農(nóng)公式在現(xiàn)實(shí)中的體現(xiàn)——噪聲串?dāng)_上去了有效信噪比下來(lái)極限速率就撐不住千兆了。2.3 編碼與調(diào)制0和1怎么變成信號(hào)物理層最核心的工程問(wèn)題之一怎么用物理信號(hào)表示0和1。這不是隨便定個(gè)高低電平就完事不同的編碼方式直接影響同步能力、直流分量、抗干擾能力。常見(jiàn)的編碼方式有這么幾種不歸零編碼NRZ高電平表示1低電平表示0電平不回到零。簡(jiǎn)單但有個(gè)致命問(wèn)題——如果連續(xù)發(fā)送多個(gè)相同的比特接收端無(wú)法從信號(hào)本身判斷比特邊界時(shí)鐘容易失步。曼徹斯特編碼每個(gè)比特周期中間都有一次電平跳變跳變既作為時(shí)鐘同步信號(hào)又作為數(shù)據(jù)信號(hào)。比如從高到低表示0從低到高表示1或者反過(guò)來(lái)。以太網(wǎng)早期就用這個(gè)。優(yōu)點(diǎn)是自帶同步缺點(diǎn)是編碼效率只有50%因?yàn)槊總€(gè)比特需要兩個(gè)信號(hào)周期。差分曼徹斯特編碼比曼徹斯特更進(jìn)一步用比特周期開(kāi)始處有沒(méi)有跳變來(lái)表示數(shù)據(jù)中間的跳變只用于同步。抗干擾能力更強(qiáng)令牌環(huán)網(wǎng)用的就是這個(gè)。4B/5B編碼每4個(gè)比特映射成5個(gè)比特保證不會(huì)出現(xiàn)連續(xù)太多的0。百兆以太網(wǎng)用的就是這個(gè)編碼效率80%。8B/10B編碼千兆以太網(wǎng)和很多高速串行接口用的每8比特映射成10比特效率80%但能保證直流平衡和足夠的跳變。調(diào)制方面常見(jiàn)的有幅移鍵控ASK、頻移鍵控FSK、相移鍵控PSK以及它們的組合如正交幅度調(diào)制QAM。QAM在WiFi和有線電視里用得很多因?yàn)樗茉谝粋€(gè)碼元里塞進(jìn)更多比特。實(shí)操心得如果你在調(diào)試串口通信發(fā)現(xiàn)數(shù)據(jù)偶爾出錯(cuò)但波特率看起來(lái)沒(méi)錯(cuò)先檢查是不是連續(xù)發(fā)送了太多相同比特導(dǎo)致接收端時(shí)鐘漂移。串口通信通常用起始位和停止位來(lái)強(qiáng)制同步但如果晶振精度不夠長(zhǎng)幀還是會(huì)出問(wèn)題。3. 傳輸介質(zhì)網(wǎng)線、光纖和無(wú)線3.1 雙絞線最熟悉也最容易踩坑雙絞線是大多數(shù)人接觸最多的傳輸介質(zhì)。為什么叫“雙絞”因?yàn)閮筛€絞在一起能有效抵消外部的電磁干擾。絞距每絞一圈的長(zhǎng)度越短抗干擾能力越強(qiáng)但信號(hào)衰減也越大。雙絞線分屏蔽STP和非屏蔽UTP。STP外面有一層金屬屏蔽層抗干擾更強(qiáng)但成本高、施工麻煩而且屏蔽層必須良好接地否則反而變成天線引入干擾。我見(jiàn)過(guò)一個(gè)機(jī)房用了STP網(wǎng)線但屏蔽層沒(méi)接地結(jié)果比UTP還差。類(lèi)別方面從Cat3到Cat8每一代支持的頻率和速率不同類(lèi)別支持頻率典型速率最大距離Cat5100MHz100Mbps100mCat5e100MHz1Gbps100mCat6250MHz1Gbps/10Gbps100m/55mCat6a500MHz10Gbps100mCat7600MHz10Gbps100mCat82000MHz40Gbps30m注意Cat6跑10Gbps只能到55米Cat6a才能到100米。這個(gè)距離限制不是隨便定的是信號(hào)衰減和串?dāng)_的綜合結(jié)果。線序是另一個(gè)容易踩坑的地方。T568A和T568B兩種標(biāo)準(zhǔn)區(qū)別就是橙綠線對(duì)的位置互換。直通線兩端用同一標(biāo)準(zhǔn)交叉線兩端用不同標(biāo)準(zhǔn)?,F(xiàn)在設(shè)備大多支持自動(dòng)翻轉(zhuǎn)Auto-MDIX交叉線用得少了但考試和某些老設(shè)備上還是會(huì)遇到。注意事項(xiàng)壓水晶頭的時(shí)候剝線長(zhǎng)度不要超過(guò)13mm太長(zhǎng)會(huì)導(dǎo)致近端串?dāng)_超標(biāo)。壓完后一定要用測(cè)線儀測(cè)不光是看通斷還要看線序?qū)Σ粚?duì)。我見(jiàn)過(guò)有人壓了根線1-2和3-6線對(duì)搞反了百兆能跑但千兆死活協(xié)商不上。3.2 光纖速度快但脾氣也大光纖分單模和多模。單模纖芯細(xì)9微米左右只允許一種模式的光傳播沒(méi)有模間色散傳輸距離遠(yuǎn)但光源要用激光器成本高。多模纖芯粗50或62.5微米多種模式同時(shí)傳播會(huì)有模間色散距離短但光源可以用LED或VCSEL成本低。多模光纖又分OM1到OM5OM1和OM2是62.5/50微米的老型號(hào)OM3以后是50微米優(yōu)化過(guò)的支持更高速率更遠(yuǎn)距離?,F(xiàn)在新建機(jī)房基本都用OM4或OM5。光纖連接器也有一堆類(lèi)型LC、SC、ST、FC、MPO。LC小巧現(xiàn)在最常用SC是方形的老設(shè)備多MPO是高密度多芯連接器數(shù)據(jù)中心用得多。光纖最大的坑是清潔。端面有一粒灰塵光信號(hào)就可能?chē)?yán)重衰減甚至反射。我見(jiàn)過(guò)一個(gè)案例某機(jī)房新布的光纖鏈路測(cè)試衰減超標(biāo)查了半天發(fā)現(xiàn)是連接器端面有個(gè)指紋。用專(zhuān)用清潔筆擦一下就好了。所以光纖跳線插拔前一定要清潔別用手摸端面。3.3 無(wú)線介質(zhì)看不見(jiàn)但同樣有規(guī)矩?zé)o線傳輸用電磁波頻段從無(wú)線電到紅外到可見(jiàn)光。WiFi用的是2.4GHz和5GHz頻段還有現(xiàn)在的6GHz。2.4GHz穿墻好但干擾多5GHz速度快但穿墻差這是物理特性決定的不是廠商能改變的。無(wú)線通信的一個(gè)核心問(wèn)題是頻譜資源有限。2.4GHz頻段只有13個(gè)信道不同國(guó)家略有差異而且互相重疊實(shí)際不重疊的只有1、6、11三個(gè)。所以你在密集公寓樓里WiFi卡不一定是路由器不行而是頻譜被鄰居占滿了。4. 物理層設(shè)備與實(shí)操要點(diǎn)4.1 中繼器和集線器簡(jiǎn)單但有用中繼器工作在物理層功能就一個(gè)把衰減的信號(hào)放大整形再轉(zhuǎn)發(fā)。它不理解幀、不理解MAC地址只管信號(hào)。所以中繼器兩端的網(wǎng)段屬于同一個(gè)沖突域。集線器本質(zhì)是多端口中繼器一個(gè)口收到信號(hào)就向所有其他口轉(zhuǎn)發(fā)。這意味著所有連在集線器上的設(shè)備共享帶寬而且處于同一個(gè)沖突域?,F(xiàn)在集線器基本被交換機(jī)取代了但理解它的工作原理對(duì)理解沖突域和廣播域很有幫助。實(shí)操心得如果你手頭只有集線器沒(méi)有交換機(jī)可以用它做網(wǎng)絡(luò)抓包。因?yàn)榧€器會(huì)向所有口轉(zhuǎn)發(fā)你把抓包設(shè)備插上去就能看到所有流量。交換機(jī)就不行需要配置端口鏡像。當(dāng)然這只是應(yīng)急手段正式環(huán)境別這么干。4.2 調(diào)制解調(diào)器數(shù)字和模擬的橋梁調(diào)制解調(diào)器Modem的功能是調(diào)制和解調(diào)。調(diào)制是把數(shù)字信號(hào)轉(zhuǎn)換成適合在模擬信道上傳輸?shù)哪M信號(hào)解調(diào)是反過(guò)來(lái)。傳統(tǒng)電話線上網(wǎng)用的就是Modem因?yàn)殡娫捑€是模擬信道只能傳模擬信號(hào)。現(xiàn)在光纖入戶用的光貓ONU本質(zhì)上也是一種Modem只不過(guò)它調(diào)制的是光信號(hào)。光貓把電信號(hào)轉(zhuǎn)換成光信號(hào)送上光纖再把光纖來(lái)的光信號(hào)轉(zhuǎn)換成電信號(hào)給路由器。4.3 實(shí)操用網(wǎng)線測(cè)試儀排查物理層故障物理層故障排查最常用的工具就是網(wǎng)線測(cè)試儀。但很多人只會(huì)看“通不通”其實(shí)它能提供更多信息。第一步測(cè)線序。把網(wǎng)線兩端分別插上測(cè)試儀的主機(jī)和遠(yuǎn)端看指示燈亮起的順序。直通線應(yīng)該是1-2-3-4-5-6-7-8依次亮交叉線是1-3、2-6對(duì)調(diào)。如果順序亂了說(shuō)明水晶頭壓錯(cuò)了。第二步測(cè)長(zhǎng)度。好一點(diǎn)的測(cè)試儀能測(cè)網(wǎng)線長(zhǎng)度基于時(shí)域反射TDR原理。如果測(cè)出來(lái)長(zhǎng)度異常短可能是中間有斷點(diǎn)如果異常長(zhǎng)可能是短路或者阻抗不匹配。第三步測(cè)衰減和串?dāng)_。專(zhuān)業(yè)測(cè)試儀比如福祿克能測(cè)插入損耗、近端串?dāng)_、回波損耗等參數(shù)。這些參數(shù)超標(biāo)網(wǎng)線可能能通但跑不了高速率。我踩過(guò)的一個(gè)坑有根網(wǎng)線測(cè)線序正常但千兆協(xié)商不上。后來(lái)用專(zhuān)業(yè)測(cè)試儀一測(cè)回波損耗超標(biāo)原因是水晶頭壓得不好線對(duì)絞距在接頭處被破壞太多。重新壓了一個(gè)頭就好了。5. 常見(jiàn)問(wèn)題與排查技巧5.1 物理層故障速查表現(xiàn)象可能原因排查方法網(wǎng)口燈不亮網(wǎng)線斷、接口壞、設(shè)備沒(méi)供電換線、換口、測(cè)電壓能通但丟包嚴(yán)重線序錯(cuò)、串?dāng)_大、距離超限測(cè)線序、測(cè)長(zhǎng)度、換Cat6千兆協(xié)商不上線序錯(cuò)、線對(duì)絞距破壞、網(wǎng)線質(zhì)量差檢查水晶頭、換線光纖鏈路衰減大端面臟、彎曲半徑過(guò)小、連接器沒(méi)插緊清潔端面、檢查彎曲無(wú)線信號(hào)差信道擁堵、距離遠(yuǎn)、遮擋多換信道、加AP、調(diào)整位置串口通信亂碼波特率不匹配、晶振精度差核對(duì)波特率、換晶振5.2 獨(dú)家避坑技巧技巧一網(wǎng)線不要和電源線平行走。電源線有50Hz工頻干擾雖然雙絞線有抗干擾能力但長(zhǎng)距離平行走線還是會(huì)引入噪聲。如果必須交叉盡量垂直交叉。技巧二光纖彎曲半徑不要小于線纜直徑的10倍。彎太狠會(huì)導(dǎo)致光信號(hào)從包層泄漏出去衰減急劇增加。我見(jiàn)過(guò)有人把光纖跳線用扎帶勒得死死的結(jié)果鏈路時(shí)通時(shí)斷。技巧三水晶頭壓完后拉一下。輕輕拉一下網(wǎng)線看會(huì)不會(huì)從水晶頭里脫出來(lái)。壓得好的水晶頭卡扣會(huì)緊緊咬住外皮拉不出來(lái)。如果一拉就出來(lái)說(shuō)明壓線鉗沒(méi)壓到位。技巧四用測(cè)線儀測(cè)長(zhǎng)距離網(wǎng)線時(shí)注意遠(yuǎn)端匹配。如果遠(yuǎn)端不接任何設(shè)備TDR測(cè)出來(lái)的長(zhǎng)度可能不準(zhǔn)因?yàn)殚_(kāi)路會(huì)產(chǎn)生反射。最好在遠(yuǎn)端接一個(gè)匹配負(fù)載。技巧五無(wú)線AP的位置比數(shù)量重要。很多人WiFi信號(hào)差就加AP結(jié)果AP之間互相干擾越加越差。正確的做法是先調(diào)整主AP位置盡量放在使用區(qū)域中心減少遮擋再考慮加AP。5.3 一個(gè)真實(shí)的排查案例某辦公室反映網(wǎng)絡(luò)時(shí)斷時(shí)續(xù)尤其是下午。我先檢查了交換機(jī)端口沒(méi)有報(bào)錯(cuò)。然后用網(wǎng)線測(cè)試儀測(cè)了從交換機(jī)到工位的網(wǎng)線線序正常長(zhǎng)度約60米也在范圍內(nèi)。接著我注意到網(wǎng)線走的是天花板上面和空調(diào)電源線綁在一起。下午空調(diào)開(kāi)得多干擾就嚴(yán)重。我把網(wǎng)線解開(kāi)重新走了一條路徑遠(yuǎn)離電源線問(wèn)題就解決了。這個(gè)案例說(shuō)明物理層故障不一定是線本身壞了環(huán)境因素也很關(guān)鍵。排查的時(shí)候要綜合考慮布線路徑、附近干擾源、溫度濕度等因素。6. 物理層知識(shí)在實(shí)際工作中的價(jià)值6.1 為什么運(yùn)維和開(kāi)發(fā)都需要懂物理層很多人覺(jué)得物理層是硬件工程師的事軟件和運(yùn)維不用管。但實(shí)際工作中物理層問(wèn)題經(jīng)常偽裝成上層問(wèn)題。比如應(yīng)用層超時(shí)可能是物理層丟包導(dǎo)致的網(wǎng)絡(luò)時(shí)延大可能是光纖衰減或者無(wú)線干擾。我做過(guò)一個(gè)項(xiàng)目應(yīng)用日志顯示數(shù)據(jù)庫(kù)連接偶爾超時(shí)DBA查了半天數(shù)據(jù)庫(kù)沒(méi)問(wèn)題網(wǎng)絡(luò)組查了路由和防火墻也沒(méi)問(wèn)題。最后發(fā)現(xiàn)是機(jī)房到機(jī)柜的一根網(wǎng)線水晶頭松了接觸不良導(dǎo)致偶發(fā)丟包。如果一開(kāi)始就從物理層查起能省好幾天時(shí)間。6.2 物理層知識(shí)在考證中的位置如果你在準(zhǔn)備網(wǎng)絡(luò)相關(guān)的認(rèn)證考試物理層是必考內(nèi)容。但考試往往側(cè)重概念和計(jì)算比如給帶寬和信噪比算極限速率或者判斷某種編碼方式的效率。這些計(jì)算題不難關(guān)鍵是把公式理解透知道每個(gè)參數(shù)的含義。奈奎斯特和香農(nóng)這兩個(gè)公式考試經(jīng)??肌S涀∫稽c(diǎn)奈奎斯特針對(duì)無(wú)噪聲香農(nóng)針對(duì)有噪聲。題目里出現(xiàn)“信噪比”就用香農(nóng)出現(xiàn)“電平數(shù)”就用奈奎斯特。6.3 后續(xù)學(xué)習(xí)方向物理層往下走可以深入信號(hào)完整性和電磁兼容這是硬件工程師的領(lǐng)域。往上走可以學(xué)數(shù)據(jù)鏈路層理解幀、MAC地址、交換機(jī)工作原理。物理層是基礎(chǔ)但單獨(dú)學(xué)它意義不大要和上下層結(jié)合起來(lái)理解。如果你想動(dòng)手實(shí)踐可以買(mǎi)一套網(wǎng)線制作工具和測(cè)線儀自己壓幾根網(wǎng)線測(cè)一測(cè)不同類(lèi)別、不同長(zhǎng)度的網(wǎng)線性能差異。這種動(dòng)手經(jīng)驗(yàn)比看書(shū)印象深刻得多。我個(gè)人在實(shí)際操作中的體會(huì)是物理層的問(wèn)題往往是最容易被忽視的因?yàn)榇蠹伊?xí)慣性地往上層找原因。但網(wǎng)絡(luò)故障排查有個(gè)基本原則從底層往上查。先確認(rèn)物理層沒(méi)問(wèn)題再查數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層一層層往上效率最高。反過(guò)來(lái)如果一上來(lái)就懷疑應(yīng)用層很可能繞一大圈才發(fā)現(xiàn)是根網(wǎng)線的事。