什麼是網絡協議?
- 其實網絡協議和我們平時生活中的協議是樣的也是一種約定
- 就好比我們看諜戰片的時候的密碼本 我將信息按照密碼本寫好 你再按照密碼本翻譯 就是一個協議
- 計算機之間的傳輸媒介是光信號和電信號. 通過 “頻率” 和 “強弱” 來表示 0 和 1 這樣的信息. 要想傳遞各種不同的信息,就需要約定好雙方的數據格式.
網絡協議爲什麼要分層?
- 分層能夠避免某個協議過於龐大複雜
- 分層之後 協議之間 解耦合 就是上層協議不需要理解下層協議的細節實現 相當於封裝
- 分層之後 任意層次的協議都可以靈活的替換 方便協議的更新
認識IP地址
- IP協議有兩個版本, IPv4和IPv6
- IP地址是在IP協議中, 用來標識網絡中不同主機的地址
- 對於IPv4來說, IP地址是一個4字節, 32位的整數
- 我們通常也使用 “點分十進制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用點分割的每一個數字表示一個字節, 範圍是 0 - 255
認識MAC地址
- MAC地址用來識別數據鏈路層中相連的節點
- 長度爲48位, 及6個字節. 一般用16進制數字加上冒號的形式來表示(例如:08:00:27:03:fb:19)
- 在網卡出廠時就確定了, 不能修改. mac地址通常是唯一的(虛擬機中的mac地址不是真實的mac地址, 可能會衝突; 也有些網卡支持用戶配置mac地址)
OSI七層模型
- OSI(Open System Interconnection,開放系統互連)七層網絡模型稱爲開放式系統互聯參考模型,是一個邏輯上的定義和規範;
- 把網絡從邏輯上分爲了7層. 每一層都有相關、相對應的物理設備,比如路由器,交換機
- OSI 七層模型是一種框架性的設計方法,其最主要的功能使就是幫助不同類型的主機實現數據傳輸;
- 它的最大優點是將服務、接口和協議這三個概念明確地區分開來,概念清楚,理論也比較完整. 通過七個層次化的結構模型使不同的系統不同的網絡之間實現可靠的通訊
- 應用層爲操作系統或網絡應用恆旭提供訪問服務的接口
- 表示層提供數據格式和轉換服務
- 會話層建立端的連接並提供訪問驗證和會話管理
- 傳輸層提供應用程序之間的邏輯通信
- 網絡層爲數據在結點之間傳遞創建邏輯聯絡 並分組轉發數據
- 鏈路層在通信之間建立鏈路連接
- 物理層爲數據端設備提供原始比特流傳輸的通絡
TCP/IP五層或者四層模型
- TCP/IP是一組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇
- TCP/IP通訊協議採用了5層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求
- 應用層負責和應用程序直接打交道(實際開發過程中用到最多的地方 甚至需要自己去設計應用層協議)
- 傳輸層負責端到端之間的傳輸 (他只關注起點和終點)
- 網絡層負責點到點之間的傳輸(需要規劃傳輸的路徑)
- 數據鏈路層負責相鄰之間點具體的如何去傳輸
- 物理層負責形成比特流在網絡通信的基礎硬件設施上通過基站和光纖等具體的傳輸
- 簡單舉個例子來說
- 就好比我們在網絡上購物 我們瀏覽頁面將物品加到購物車 去付款填地址電話 這就是應用層
- 然後賣家根據你填的信息去根據你的信息發快遞 這就好比傳輸層
- 快遞公司規劃具體的路線 就比如我住西安 快遞公司就會去找 怎麼郵遞這個快遞最便捷 這就貌似網絡層
- 然後快遞小哥開着車從上海出發將快遞運到武漢 再從武漢出發運到西安 再運到未央區 這就貌似數據鏈路層的功能
- 我的快遞可能在高速公路上運着 可能在飛機上運着 這個運的過程就好比物理層
對於一臺主機 它的操作系統內核實現了從傳輸層到物理的層的功能
對於一臺路由器 他實現了網絡層到物理層的功能
對於一臺交換機 他實現l數據鏈路層到物理層的功能
對於集線器 他只實現了物理層
對比倆個模型
數據的包裝與分用
- 不同的協議層對數據包有不同的稱謂,在傳輸層叫做段(segment),在網絡層叫做數據報 (datagram),在鏈路層叫做幀(frame).
- 應用層數據通過協議棧發到網絡層時,每層協議都要加上一個數據首部(header),稱爲封裝(Encapsulation).
- 首部信息中包含了一些類似於 首部有多長, 載荷(payload)有多長, 上層協議是什麼 等信息.
- 數據封裝成幀後發到傳輸介質上,到達目的主機後每層協議再剝掉相應的首部, 根據首部中的 “上層協議字段” 將數據交給對應的上層協議處理
- 如圖上到下爲封裝 下到上爲分用