Kalan's Blog

Kalan 頭像照片,在淡水拍攝,淺藍背景

四零二曜日電子報上線啦!訂閱訂起來

Software Engineer / Taiwanese / Life in Fukuoka
This blog supports RSS feed (all content), you can click RSS icon or setup through third-party service. If there are special styles such as code syntax in the technical article, it is still recommended to browse to the original website for the best experience.

Current Theme light

我會把一些不成文的筆記或是最近的生活雜感放在短筆記,如果有興趣的話可以來看看唷!

Please notice that currenly most of posts are translated by AI automatically and might contain lots of confusion. I'll gradually translate the post ASAP

那些比較冷門的 Networking 理論 (1)

這邊指的冷門,是指對我來說比較少聽到的技術名詞與理論。

對於軟體工程師來說,OSI 七層模型我們通常會在傳輸層以上打交道,像是常見的 TCP/IP、HTTP 協定等等,就算不知道詳細,也大概知道他們是怎麼工作的。相反地,對於 OSI 七層以下的模型就比較少接觸。

不過在實體層,其實要考慮的細節也很多軟體實作更多,尤其是實體訊號傳遞是在一個相對不穩定、充滿雜訊的情況下工作,因此在設計時就必須將這些因素考慮進去。

編碼

資料在網路當中是如何編碼的呢?不管檔案內容是什麼,我們最終都需要將資料轉為高電位或低電位等物理訊號,才能夠實現傳輸。將資料轉為不同的格式或結構,以便於計算機處理,這個過程通常叫做編碼(Encoding)

在電路上也是如此,一般來說我們會將高電位視為 1,低電位視為 0

NRZ(Non-Return-to-Zero)

NRZ 是一種數位通信中的編碼方法,用電壓來表示位元的值。

NRZ 編碼的特點是,在每個單位時間內,信號的電壓保持固定,直到下一個位元時間開始。

這邊很重要的一點在是「單位時間」內,這代表每個 bit 之間的間隔會是固定的。因為對雙方來說,需要一個統一的週期信號,才能知道要怎麼去讀取資料流,否則可能會讀取到完全不一樣的結果。

000000

如果 clock 太快或太慢,都有可能導致資料有誤。然而問題來了,雙方要怎麼知道 clock 頻率是多少?我們雖然可以另外加上一條線來當作 clock 信號,但對於實際應用來說我們希望線越少越好。而且如果資料長時間保持同一個電位,很可能會有失準的問題。

Clock Recovery

在實際應用中,我們會從來源信號來他的原始 clock 頻率是多少,並且由接收器產生對應的週期波並解碼。這個過程叫做 Clock Recovery。

Clock Recovery 大致上可以分為幾個步驟:

  • 偵測 transition,通常可以用一個 delay 電路完成
  • 透過 FFT 轉換來找週期
  • 透過鎖相迴路(Phase-locked loops)同步信號

clock recovery 的詳細原理可以參考維基百科,不過最主要的目的就是當參考信號的頻率有變化時,透過回授來調節相位或頻率,讓兩者一致。

不過這樣也有一個問題,如果資料一直保持高電位或低電位的話,不就完全不知道頻率了嗎?為了解決這個問題,其他編碼方式也有被採用。

Manchester 編碼

既然不想要讓資料流一直保持低電位或高電位,那麼我們就讓電位一直變!Menchester 採用了一種很聰明的方法來判別 0 和 1。

Menchester 是以高低電位的變化當作 01

  • 0:從低電位變化到高電位
  • 1:從高電位變化到低電位

這樣一來,就算原始資料是連續的 0 或 1 也沒關係,因為電位會一直變化,也就可以有效做到 clock recovery。IEEE 802.3 也是採用這種編碼方式。然而這個編碼最致命的缺點就是傳輸頻寬比 NRZ 高出一倍,要在一個週期檢測出高低電位變化,所以實際上需要兩倍頻寬。

4B/5B

Prev

JPG 與離散餘弦轉換

Next

驅動現代社會的半導體 (2)

If you found this article helpful, please consider buy me a drink ☕️ It'll make my ordinary day shine✨

Buy me a coffee