假設今天小丸子和小玉要透過電話聊天,要怎麼樣他們才可以順利溝通?
除了要有實體的電話以外
當然是雙方得說著一樣的語言囉~~
如果今天網路上兩個裝置要來交換資料,光有實體線路的連接還不夠,也必須要透過相同的語言才可以,在電腦的世界裡這個相同的語言稱為「協定」(protocol)
又叫「封包」,是資料傳輸的計量單位。 可以分成兩個部份:
我們可以將一個封包想像成一封信,表頭的資料相當於信封外的地址、寄件人、收件人等資訊,而封包內的資料則相當於信的內容。和信不同的是,有時候一個大封包可以分成多個小封包
傳遞資料的單位,一個「區段」(segment) 可以承載非常多個位元組,而所承載的位元組個數,稱為資料長度(data length)。可將多次寫入的資料累積為一個區段 or 將資料切割為多個區段
OSI 模型中「資料連結層」的表頭 + 資料 + 表尾 (如果有的話),稱作訊框 (頁框),為此層的資料傳輸單位
為了把網路設備以及協定加以管理和分類,「國際標準組織」(International Organization for Standardization,簡稱:ISO)訂定了「OSI 模型」,用以區分通訊系統和其使用的協定(protocol),一共定義了七層(如上圖)的架構
由最高層到最低層排列,每層都各有各的用途:
是跟使用者最接近的一層,負責接收來自使用者的訊息,之後再轉交給表達層來處裡 or 接收來自表達層的資料。「服務通訊協定」也是定義在這一層,其應用如電子郵件、全球資訊網(WWW)、網路電話、HTTP、DNS、SSH 等
又稱「表現層」,負責將使用者的資訊標準化,包括資料格式、編碼等,如文字檔案的 ASCII 格式和 UTF-8 格式。以網路電話為例,使用者傳遞聲音訊息,「應用層」在接受到後,便會把訊息後傳給「表達層」,「表達層」再將資訊後加以編碼、壓縮甚至是加密等操作,最後把已經轉為標準格式的資訊傳遞給下一層 - 「交談層」
又稱「會議層」,負責進行「對話」的建立、關閉、維護,可以理解為「建立對話的管道」,像是視訊時,需要同時傳輸畫面和聲音的資料,「交談層」在這時就會建立兩個不同的虛擬通道來做資料的傳輸。分類在「交談層」的通訊協定像是 RPC(Remote Procedure Call),用來負責建立傳輸不同類型的多媒體資料通道、SSL(Secure Socket Layer) 負責建立用來傳輸加密後的資料的通道等
提供上層「資料傳輸」更進一步的服務,包括多工(multiplexing)、流量控制、錯誤處理等。
傳輸的單位以「區段」(Segment)、「數據包」(Data Packet)為單位,換句話說「傳輸層」會把資料切割為數個「區段」、「數據包」傳給「網路層」,其大小可以由使用者自行決定,但考量傳輸效率,大小通常會把「網路層」或「資料連結層」納入考慮,進行最佳化設定。此層常見的通訊協定像是 TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)
「網路層」(也有叫「網際網路層」、「網際層」」)主要負責「網路位址」的指定、「資料切割」、「路由」的決定。資料傳輸以「封包」為單位,其 header 裡必須包含「來源」和「目的地」的網路位址,當「網路層」接收到來自上層的資料時,他必須將資料進行切割,以符合下一層規範的資料大小限制。而當接收到來自下層的封包時,也須將封包的資料重組,才能送給上層。「網路層」常見的通訊協定包含 IPv4, IPv6
「資料連結層」主要負責處理兩個實體線路間的資料傳遞(透過頁框)、「錯誤偵測和修正」、「多重存取」等。資料傳輸是以「頁框」(Frame)為單位。資料連結層中的資料包含「位址段」和「資料段」,通常這個「位址段」稱為「實體位址」或是「MAC位址」,只限在區域網路內使用;「資料段」則包含實際要傳輸的資料。常見的應用有:ATM
「OSI 模型」中最低的一層,負責將來自「資料連結層」的資料頁框(Frame)轉換為「傳輸媒介」所能傳遞的電子訊號,可透過「電腦網路的架構(上):主從式架構、 同儕式架構、傳輸媒介」這篇中所介紹的「傳輸媒介」來進行傳輸。傳輸以「位元」為單位,像是 RJ-45 接頭、光纖、集線器、序列埠、並列埠等都是實體層的裝置
圖片來源
由於通訊協定要按照「OSI 模型」區分不易,就有了「TCP/IP 模型」的出現,在其目的主要在簡化並合併分類及降低管理通訊協定的複雜度。由 Vint Cerf 和 Robert Elliot Kahn 所共同設計(兩位目前都已經 80 歲以上了)
一共定義了四層(如上圖)的架構,由「最高層」到「最低層」排列如下:
包含「OSI模型」裡定義的「應用層」、「表達層」、「交談層」,負責提供網路服務給應用程式
與「OSI模型」裡的「傳輸層」類似,負責分段排序、錯誤控制、流量控制等工作
與「OSI模型」裡的「網路層」類似,負責定址和路由等工作,常見的通訊協定有IP(Internet Protocol)
又稱「連結層」or「網路介面層」,包含「OSI模型」裡定義的「資料連結層」、「實體層」,負責與硬體溝通,在主機和網路之間交換數據。此層支援所有標準的通訊協定
目前網際網路的的通訊協定大部分都是基於「TCP/IP 模型」所設計,因為好管理,區別容易。此外,各個層級所負責的工作跟「OSI模型」其實差不多,這裡就不多解釋了!
網路資料的傳送都是從模型中的「最高層」開始傳送,經過層層的封裝後,最後才得以將「封裝」完成的訊息,透過實際的網路傳輸媒介進行傳送;而接收端在收到已封裝訊息後,會由「最下層」開始層層往上拆解,最終由負責的應用程式將訊息呈現給使用者
傳送:由最高層開始進行「封裝」
接收:由最低層開始拆「解封裝」
OSI 與 TCP/IP 模型中有些層級在做的事情真的頗像的!維基百科上是有提到「OSI 模型」中的「表達層」、「交談層」後來被棄用,但目前好像也沒有看到其他文章和書上有提到
如果對文章有什麼問題和建議,歡迎底下留言喔~