1. 程式人生 > >【基本網路概念之二】網路的分層

【基本網路概念之二】網路的分層

網路的分層

  網路通訊的不同方面被分解為多個層。每個層表示為物理硬體(即線纜與電流)與所傳輸資訊之間的不同抽象層次。在理論上,每一層只與緊挨其上和其下的層對話。將網路分層,這樣就可以修改甚至替換某一層的軟體,只要層與層之間的介面保持不變,就不會影響其他層。
  有幾種不同的分層模型,分別適合特定型別網路的需要。Internet標準TCP/IP四層模型,應用層,傳輸層(TCP,UDP),網際層(IP),主機網路層(乙太網,wifi,LTE等)。
  主機網路層是最複雜的,特意隱藏了很多細節。90%的java程式碼都將在應用層工作,只需與傳輸層對話。其他10%的時間會在傳輸層處理,與應用層或網際層對話。主機網路層的複雜性對你是隱藏的,這是分層模型的關鍵。

主機網路層

  在基於IP的Internet(java唯一真正理解的網路)的標準參考模型中,網路中隱藏的部分屬於主機網路層(host-to-work layer,也稱為鏈路層、資料鏈路層或網路介面層)。主機網路層定義了一個特定的網路介面(如乙太網卡或wifi天線)如何通過物理連線向本地網路或世界其他地方傳送IP資料報。
  主機網路層中,由連線不同計算機的硬體(線纜、光纖電纜、無線電波或煙訊號)組成的部分有時稱為網路的物理層。
  需要考慮主機網路層和物理層的主要原因是效能。不過,不論你遇到哪一種的物理鏈路,在這些網路上用來完成通訊的API都是一樣的。之所以能狗做到這一點,就是因為網際層。

網際層(網路層)

  網路層協議定義了資料位和位元組如何組織為更大的分組,稱為包,還定義了定址機制,不同計算機要按這個定址機制查詢對方。網際協議(IP)世界上使用最廣泛的網路層協議,也是java唯一理解的網路層協議。
  實際上,這是兩個協議:IPv4和IPv6,IPv4使用32位地址,IPv6使用128位地址,另外還增加了一些技術特性來幫助完成路由。這是兩個完全不同的網路協議,如果沒有特殊的閘道器和/或隧道協議,即使在相同的網路上它們也無法做到相互操作,不過java幾乎對你隱藏了所有這些區別。
  在IPv4和IPv6中,資料按包在網際層上傳輸,這些包稱為資料報(datagram)。每個IPv4資料報包含一個長度為20至60位元組的首部,以及一個包含多達65515位元組資料的有效載荷(payload)。
  除了路由和定址,網際層的第二個作用是支援不同型別的主機網路層相互對話。Internet路由器會完成wifi和Ethern、Ethernet和DSL、DSL和光纖往返等協議之間的轉換。如果沒有網際層或類似的分層,則每個計算機只能與同一類網路上的其他計算機對話。網際層負責使用同構協議將衣鉤網路相互連線。

傳輸層

  原始資料報有一些缺點。最顯著的缺點是不能保證可靠傳送,即使能傳送也可能在傳輸中遭到破壞。首部校檢和只能檢測首部中的破壞情況,而不能檢測資料報中的資料部分。最後,即使資料報能到達目的地而未被破壞,也不一定會以傳送時的順序到達,各個資料報可能會經過不同路由從源到達目的地。
  傳輸層(transport layer)負責保證各包以傳送的順序接收,並保證沒有資料丟失或被破壞。如果丟包,傳輸層會請求傳送方重傳這個包。為實現這個目標,IP網路會給每個資料報新增一個附加首部,其中包含更多資訊。這一層上主要兩個協議。
  第一個是傳輸控制協議(Transmission Control Protocol,TCP),這是一個開銷很高的協議,支援對丟失或破壞的資料進行重傳,並按照發送時的順序進行傳送。
  第二個協議是使用者資料報協議(User Datagram Protocol,UDP),它允許接收方檢測被破壞的包,但不保證這些包以正確的順序傳送(或者包有可能根本未傳送)。但是,UDP通常比TCP快。TCP稱為可靠的協議;UDP稱為不可靠的協議。

應用層

  向用戶傳送資料的層稱為應用層(application layer)。它的下面三層共同定義了資料如何從一臺計算機傳輸到另一臺計算機。應用層確定了資料傳輸後的操作。

相關推薦

基本網路概念網路分層

網路的分層   網路通訊的不同方面被分解為多個層。每個層表示為物理硬體(即線纜與電流)與所傳輸資訊之間的不同抽象層次。在理論上,每一層只與緊挨其上和其下的層對話。將網路分層,這樣就可以修改甚至替換某一層的軟體,只要層與層之間的介面保持不變,就不會影響其他層。

基本網路概念IP、TCP和UDP IP地址和域名 埠

IP、TCP和UDP   java支援的協議只有TCP和UDP,以及建立在TCP和UDP之上的應用層協議。所有其他傳輸層、網際層和更底層的協議,如ICMP、IGMP、ARP和其他協議在java程式中都只能通過連結到原生程式碼來實現。 IP地址和域名   I

基本網路概念Internet 網路地址轉換 防火牆 代理伺服器 客戶/伺服器模型

Internet   Internet是世界上最大的基於IP的網路。它是所有七大洲多個不同國家的計算機使用IP相互對話的一個無組織的集合。它只是約定以一種標準方式相互對話的一個非常大的計算機集合。   Internet不是唯一的基於IP的網路,但卻是最大的一

Lucene4.8教程索引

文件路徑 位置 存在 this nth 創建索引 exe 搜索 最簡 一、基礎內容 0、官方文檔說明 (1)org.apache.lucene.index provides two primary classes: IndexWriter, whic

OpenCV入門教程 一覽眾山小:OpenCV 2.4.8 or OpenCV 2.4.9元件結構全解析

毛星雲,網路ID「淺墨」,90後,熱愛遊戲開發、遊戲引擎、計算機圖形、實時渲染等技術,就職於騰訊互娛。 微軟最有價值專家 著作《Windows遊戲程式設計之從零開始》、《OpenCV3程式設計入門》 碩士就讀於南京航空航天大學航天學院(2013級碩士研究生),已於2016年三月畢業。本科

從零單排科大訊飛語音包Mscdemo的使用

前幾天寫的從零單排系列我發現了一個嚴重的錯誤,就是科大訊飛下載的Mscdemo是可以使用的,只不過是我沒設定好環境而已才有那麼多錯誤,特此更正一下。 具體遇到的錯誤即解決辦法如下。 1.註釋是亂碼。右鍵單擊src包,選擇properties,找到Text code enco

澤澤在英國澤澤四部曲

澤澤在英國時間限制: 1000 ms 空間限制: 262144 KB 具體限制題目描述澤澤用了100000000000000000000 mod 10天的時間爬出了長城。長城的另一端是一條隧道,澤澤走了進去……澤澤不小心又到了英國。英國多雨,基本上隔2天就要下一場雨。澤澤人品

solr基礎教程索引

一、向Solr提交索引的方式 1、使用post.jar進行索引 (1)建立文件xml檔案 <add> <doc> <field name="id">test4</field> <

Unity基礎知識支援iOS架構 armv6 armv7 armv7s arm64

釋出一個unity遊戲到iOS上,需要匯出XCode工程,編譯釋出,但是一個同樣的程式,在android上只有20M,在iOS上就60幾M了,一個跟android包會壓縮有關,另外就是因為指令集了。 目前ios的指令集有以下幾種: armv6 iPhone iPh

多執行緒CreateMutex()互斥體

某修學習多執行緒第二個知識點,這裡再做個筆記。 Mutex控制互斥體的一些函式的使用: CreateMutex、ReleaseMutex、WaitForSingleObject。 CreateMutex() 功能:建立一個互斥體 VC宣告 H

深度學習介紹系列——深度強化學習:卷積神經網路

介紹深度學習強化學習中的卷積神經網路 卷積神經網路的大致介紹我們在前一篇文章深度強化學習(一)中已經說過了。本篇文章會詳細介紹卷積神經網路的起源,發展和應用。本篇文章我們會從以下幾個方面介紹: 1)神經網路是什麼 2)卷積神經網路的起源與經典結構 3)卷積網路的

SSH進階Struts基本原理 + 實現簡單登錄(

target doctype 掌握 pack insert enter snippet file manage 上面博文,主要簡單的介紹了一下SSH的基本概念,比較宏觀。作為剛開始學習的人可以有一個總體上的認識,個人覺得對學習有非常好的輔助功能,它不不過

數字影象處理系列基本概念:亮度、對比度、飽和度、銳化、解析度

本系列python版本:python3.5.4 本系列opencv-python版本:opencv-python3.4.2.17 本系列使用的開發環境是jupyter notebook,是一個python的互動式開發環境,測試十分方便,並集成了vim

網路基本功系列細說交換機

記住交換機操作模式的一句簡單的話是:交換機學習“源地址”,基於“目的地址”轉發。幀進入交換機時,交換機“學習”接收幀的源MAC地址,並將此地址新增到MAC地址表中,或重新整理已存在的MAC地址表項的老化暫存器;後續報文如果去往該MAC地址,則可以根據此表項轉發。幀轉發時,交換機檢查目的MAC地址並與MAC地址

SSH進階Struts基本原理 + 實現簡單登入(

      上面博文,主要簡單的介紹了一下SSH的基本概念,比較巨集觀,作為初學者能夠有一個整體上的認識,個人認為對學習有很好的輔助功能,它不僅僅是一個“瞭望塔”,更是檢驗是否真正掌握所有內容的一個前

caffe學習筆記5Win10系統下Caffe的Python介面設定方法並繪製網路結構圖

【準備工作】 前面幾節介紹了win10系統下caffe-master的配置方法以及cifar10資料集的訓練方法,並簡要介紹了Matlab介面如何配置。想要更為形象的瞭解caffe框架下諸多網路模型的

SSH進階Hibernate基本映射(三)

tor res 主動 tran clas oid 支持包 lose 包括 【SSH進階之路】Hibernate基本原理(一) ,小編介紹了Hibernate的基本原理以及它的核心。採用對象化的思維操作關系型數據庫。 【SSH進階之路】Hibernate搭建開發環境+簡單

iOS與EV3混合機器人編程系列工欲善其事,必先利其器(準備篇)

style 混合 版權 相同 開發 code 操作系統 圖形 ipa 在上一篇文章中,我們論述了iOS與EV3結合後機器人開發的無限可能。那麽,大家要不要一起來Hacking一把呢?為了能夠完整地完畢我接下來我講的項目。我們須要做下面準備:1、一臺Mac執行MAC OS

Java學習筆記解析接口在Java繼承中的用法及實例分析

ani 復制代碼 ads compute 現在 target body 常量 實現接口 一、定義 Java接口(Interface),是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具

opencv入門感興趣區域ROI,線性混合addWeighted

bsp enc 擁有 ted 興趣 通道數 amp log 兩個 參考網站: http://blog.csdn.net/poem_qianmo/article/details/20911629 1、感興趣區域ROI   //【2】定義一個Mat類型並給其設定ROI區