網絡七層協議之物理層

我們以一個非常簡單的例子開始:

兩服務器通訊問題

兩服務器通訊問題

如上圖,有兩臺服務器,分別是?Server?1?和?Server?2?。 我們先做一個假設:計算機網絡現在還沒有被發明出來, 作為計算機科學家的你,想在這兩臺服務器間傳遞數據,怎么辦?

原文地址:https://learn-linux.readthedocs.io 。
QQ交流群:Linux網絡編程,群號:183196643
歡迎關注我們的公眾號:小菜學編程 (coding-fan)

這時,你可能會想到,用一根電纜把兩臺服務器連接起來:

通過電纜實現通訊

物理課大家都學過,電線可以分為?低電平?和?高電平?。 電平可以高低變化,這樣不就可以傳遞信息了么:?Server?1?控制電纜電平的高低,?Server?2?檢測電平的高低,這樣就實現了?Server?1?往?Server?2?發送數據啦!

更進一步,可以將高低電平抽象成數學語言:我們用低電平表示?0?,高電平表示?1?,這樣就得到一個理想化的信道:

理想化信道

通過信道,雙方可以傳遞一些?01?比特流。 例子中,我們傳輸的比特流是?1111010101...?(從右往左看)。 比特流可以編碼任意信息: 比如,我們用?1111?表示告訴對方本地開機了,用?0000?告訴對方本地準備關機了。

到目前為止,我們是不是萬事具備了呢? 一個比特流信道成為現實?——理論上是這樣子的。 但是,現實世界往往要比理想化的模型復雜一些。

發送控制

信道無窮無盡

首先,如上圖,信道是無窮無盡的。 因為,信道狀態要么為?0?,要么為?1?,沒有一種表示空閑的特殊狀態。

結尾在哪?

舉個例子,如上圖,?Server?1?向?Server?2?發送比特序列?101101001101?(從右往左讀)。 最后一個比特是?1?,對應的電平是高電平。 發送完畢后,由于沒有沒有其他地方改變電纜的電平,所以還是維持高電平狀態。 也就是說,信道看起來還是按照既定節拍,源源不斷地發送?1?(灰色部分),?Server?2?怎么檢測結尾在哪里?

我們可以定義一些特殊的比特序列,用于定義開頭結尾:?101010?表示開頭,?010101?表示結尾。

.引入控制比特

這時,?Server?1?先發送?101010?(紅色),告訴?Server?2?我要開始發數據了; 然后,?Server?1?開始發送數據?1101011?(黑色部分); 最后,?Server?1?發送?010101?(綠色),告訴?Server?2?數據發送完畢。 注意到,平時信道為?1?(灰色),也就是代表空閑狀態。

沖突仲裁

如果兩臺服務器同時往信道里發送數據,會發生什么事情呢?

發送沖突:兩臺服務器同時發送數據

肯定沖突了嘛!一臺發?0?,一臺發?1?,那你說信道到底是?0?還是?1?? 那么,沖突要怎么解決呢?

解決方式也簡單,只需在硬件層面實現一種機制:在檢測到兩臺服務器同時發送數據時,及時喊停,并協商到底由哪一方先發。

總結

本節討論了一個最簡單的模型,解決兩臺服務器之間的通訊問題。 通過電纜,在兩臺機器間建立了一個理想的比特流傳輸信道。 這其實就是網絡分層結構中最底層——物理層的作用:

  • 傳輸比特流
  • 依賴物理(電氣)特性

這一層對開發人員來說,基本上是透明的,我們只需將其理解成一個比特流傳輸信道即可。 至于細節問題,高低電平啦,信號啦,各種物理特性啦,通通留給電子工程師去關心好啦!

進度

新技能Get??

下一步

下一節,我們將通過?多服務器通訊問題?進入?數據鏈路層?的學習。

訂閱更新,獲取更多學習資料,請關注我們的?微信公眾號?:

小菜學編程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253849.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253849.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253849.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

靜態時序分析——On-chip Variation

OCV(on-chip variation)是指在同一個芯片上, 由于制造工藝和環境等原因導致芯片上各部分特征不能完全一樣,從而造成偏差,對時序分析造成影響。這些偏差對互聯線和cell的延時都是有影響的。 由于OCV對延時有影響,那么我…

Exception和RuntimeException的區別

1.Exception表示程序運行過程中可能出現的非正常狀態 RuntimeException表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。 Java編譯器要求方法必須聲明拋出可能發生的費運行異常,但是并不要求必須聲明拋出未被捕獲的運行時異常, 即…

[轉載]IIS7報500.23錯誤的解決方法

原文出處: 原文作者:pizibaidu 原文鏈接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司終端上有一個功能打開異常,報500錯誤,我用Fiddler找到鏈接,然后在IE里打開&#xff0c…

關于用戶空間和內核空間

當一個任務(進程)執行系統調用而陷入內核代碼中執行時,我們就稱進程處于內核運行態(內核態)。在內核態下,CPU可執行任何指令。當進程在執行用戶自己的代碼時,則稱其處于用戶運行態(用…

kaggle中zillow比賽中模型融合的方法及其代碼

在機器學習這個領域,尤其是做多媒體(聲音、圖像、視頻)相關的機器學習方法研究,會涉及很多特征、分類模型(分類任務)的選擇。以聲音識別為例,常見的特征有MFCC、LPCC、spectrogram-like feature…

靜態時序分析——Timing borrow

Timing Borrow技術又稱為cycle stealing技術,主要是利用latch的電平敏感特性,通過有效電平獲取數據,通過無效電平保持被鎖存的數據,主要用于解決路徑時序不滿足電路要求的情況。 通過TimingBorrow可以對電路進行加速,當路徑延遲較…

homebrew 常用命令

安裝(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/Go/install)" 搜索:brew search MySQL 查詢:brew info mysql 主要看具體的信息,比如目前的版本&#xff0c…

從Mysql某一表中隨機讀取n條數據的SQL查詢語句

若要在i ≤ R ≤ j 這個范圍得到一個隨機整數R ,需要用到表達式 FLOOR(i RAND() * (j – i 1))。例如, 若要在7 到 12 的范圍(包括7和12)內得到一個隨機整數, 可使用以下語句: SELECT FLOOR(7 (RAND() * 6)); 以上摘…

基于MTD的NAND驅動開發(二)

基于MTD的NAND驅動開發(二) 基于MTD的NAND驅動開發(三) http://blog.csdn.net/leibniz_zsu/article/details/4977853 http://blog.csdn.net/leibniz_zsu/article/details/4977869 四、基于MTD的NAND 驅動架構 1 、platform_device 和platform_driver 的定義和注冊 對于我們的…

靜態時序分析——Data to data check

setup和hold的檢查也有可能發生在任意兩個數據端口,其中不包括時鐘端口。 我們將其中一個端口(pin)設置為約束端口(constrainted pin),就像觸發器中的數據端口;將另一個一個端口(pin…

開源數據庫中間件-MyCa初探與分片實踐

如今隨著互聯網的發展,數據的量級也是撐指數的增長,從GB到TB到PB。對數據的各種操作也是愈加的困難,傳統的關系性數據庫已經無法滿足快速查詢與插入數據的需求。這個時候NoSQL的出現暫時解決了這一危機。它通過降低數據的安全性,減…

【JAVA設計模式】外觀模式(Facade Pattern)

一 定義 為子系統中的一組接口提供一個一致的界面。Facade模式定義了一個高層的接口,這個接口使得這一子系統更加easy使用。二 案例 一個子系統中擁有3個模塊。每一個模塊中都有3個方法。當中一個為client調用方法,其它兩個則為各子模塊間互相調用方法…

return的用處

#include "stdio.h" main() {int a,b1,c0;for(a1;a<5;a){ cca;}printf("%d",c);return ;printf("hello word"); } 輸出結果是10并沒有hello word&#xff1b;return將不會執行下面的語句。轉載于:https://www.cnblogs.com/doublekai/p/6148…

靜態時序分析——Clock Gating check

門控時鐘是RTL級進行低功耗設計的最常用方法&#xff0c;能夠有效降低動態功耗。在實際使用中&#xff0c;一般用ICG&#xff08;集成門控時鐘單元&#xff09;來完成clock gating。ICG電路和時序如下&#xff1a; 通常來說&#xff0c;工藝庫已經集成了ICG&#xff0c;在做門控…

U-boot中TFTP 解釋

http://www.cnblogs.com/heaad/archive/2009/08/10/1542538.html

BlackHat Arsenal USA 2018 ToolsWatch黑客工具庫

原文鏈接&#xff1a;https://medium.com/hack-with-github/black-hat-arsenal-usa-2018-the-w0w-lineup-7de9b6d32796 Black Hat Arsenal USA 2018?—?The w0w lineup After the huge success of Black Hat Arsenal USA 2017, toolswatch has now announced the list of too…

SOA是什么

SOA是什么&#xff1f; SOA是面向服務的架構&#xff0c;是一個組件模型&#xff0c;它將應用程序的不同功能單元&#xff08;稱為服務&#xff09;通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的&#xff0c;它獨立于實現服務的硬件平臺、操作…

redis 優化

系統優化echo "vm.overcommit_memory1" > /etc/sysctl.conf 0&#xff0c; 表示內核將檢查是否有足夠的可用內存供應用進程使用&#xff1b;如果有足夠的可用內存&#xff0c;內存申請允許&#xff1b;否則&#xff0c;內存申請失敗&#xff0c;并把錯誤返回給應…

IC設計常見設計思想

速度與面積互換原則 所謂速度&#xff0c;是指整個工程穩定運行所能夠達到的最高時鐘頻率&#xff0c;它不僅和電路內部各個寄存器的建立時間、保持時間以及外部器件接口的各種時序要求有關&#xff0c;而且還和兩個緊鄰的寄存器間的邏輯延時&#xff0c;走線延時有關。所謂面…

DM365 u-boot啟動分析

http://www.61ic.com/Article/DaVinci/DM644X/201009/27429.html