一、OSI模型是什麼?
OSI模型(Open System Interconnection Reference Model,即開放式系統互聯參考模型)是一個計算機網路體系結構模型,是由國際標準化組織(ISO)制定的一個標準框架。
OSI模型將網路通信協議分為7層,每一層都包含著自己的功能與協議。它的主要目的是為了解決網路設備之間的通信問題,使得每個設備都能理解如何在網路中進行通信。
二、OSI模型的優點
OSI模型的主要優點在於,它能夠讓不同廠商的設備互相通信,由於OSI模型是一個開放式模型,不同廠商都可以按照該模型進行開放式的設計,從而保證了設備之間的互相通信。
三、OSI模型共有幾層?
OSI模型分為7層,每層都處理著網路通信中的特定任務,這7層分別是:
- 物理層(Physical Layer)
- 數據鏈路層(Data Link Layer)
- 網路層(Network Layer)
- 傳輸層(Transport Layer)
- 會話層(Session Layer)
- 表示層(Presentation Layer)
- 應用層(Application Layer)
四、OSI模型分為幾層?
OSI模型的7層可以按照功能劃分到以下3個大類中:
- 下層(Physical Layer、Data Link Layer、 Network Layer、 Transport Layer):主要負責數據傳輸和網路路由的功能。
- 中間層(Session Layer、Presentation Layer):主要負責數據的表示、安全性、語音傳輸和數據的同步及恢復。
- 上層(Application Layer):為用戶提供應用級別的服務,如文件傳輸、電子郵件、萬維網等。
五、OSI模型的七個層次
1.物理層(Physical Layer)
物理層是OSI模型的第一層,也是最底層,它與底層硬體交互,負責精細控制信息的傳輸方式,包括數據傳輸的物理媒介、物理特性以及物理連接方式等。物理層與設備硬體相關,它的主要功能是在物理媒介上傳輸原始數據比特流(1和0)。
物理層主要負責的是
- 傳輸數據位元組流到物理媒介上。
- 定義介面、插頭、插口的物理和電氣特性
- 定義光纜標準、連接器、網路段距離等
- 通信速率、編碼協議等行業或標準規範。
2.數據鏈路層(Data Link Layer)
數據鏈路層是OSI模型的第二層,它負責將網路層交下來的數據包封裝成幀,並添加在幀頭幀尾的標記,並完成與物理層的交互。數據鏈路層的主要目的是提供可靠且有序的數據傳輸服務。
/* 格式化成幀結構,文件頭+幀頭+幀內容+幀尾+文件尾*/ public class Frame { public FrameHeader frameHeader; public byte[] frameData; } //為每個幀添加幀頭和幀尾 public class FrameHeader{ private byte[] head; private byte[] tail; private int length; private int crc; }
3.網路層(Network Layer)
網路層是OSI模型的第三層,其主要目標是向數據添加源和目的地址,以便向目標地址發送數據。網路層可以為每個數據包添加服務類型,例如語音或數據。
網路層有多種功能:
- 路由選擇和地址解析,尋找最優的傳輸路徑,保證信息的正確快速傳輸
- 對網路擁塞情況和數據包優先順序進行控制,降低丟包率
- 數據隔離與安全性防護,加強網路數據安全性,識別數據包中擁有的安全許可權。
4.傳輸層(Transport Layer)
傳輸層是OSI模型的第四層,它的主要作用是將數據從一個應用程序傳輸到另一個應用程序。傳輸層可以通過可靠的端到端數據傳輸和流控制來提供可靠的數據傳輸。
/* 建立TCP連接 */ ServerSocket server = new ServerSocket(port); Socket socket = server.accept(); Socket client = new Socket(host, port); /* 傳輸數據 */ InputStream inputStream = socket.getInputStream(); OutputStream outputStream = server.getOutputStream(); outputStream.write(messageBytes); outputStream.flush();
5.會話層(Session Layer)
會話層是OSI模型的第五層,它主要負責在不同計算機之間建立、管理和終止會話。會話層可以通過使用不同的認證方式、加密演算法、會話控制協議以及其他機制來確保數據的保密性和完整性。
6.表示層(Presentation Layer)
表示層是OSI模型的第六層,它負責將數據從計算機內部表示轉換為網路可傳輸的格式。
在表示層中可以實現以下功能:
- 數據傳輸的加密、解密和壓縮。
- 數據格式的轉換和編碼解碼,提高通信效率和數據傳輸速度。
7.應用層(Application Layer)
應用層是OSI模型的第七層,它是與最終用戶進行交互的最上層。應用層的主要任務是向用戶提供網路服務,例如電子郵件、文件傳輸和終端模擬等。
/* JAVA中的Socket網路編程 */ public class SocketClient { private static final int PORT = 8877; private static final String HOST = "localhost"; public static void main(String[] args) throws IOException { Socket socket = null; PrintWriter out = null; BufferedReader in = null; socket = new Socket(HOST, PORT); out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); String message = "Hello World!"; out.println(message); System.out.println("Client: " + message); String response = in.readLine(); System.out.println("Server: " + response); } }
原創文章,作者:FRVPX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/370024.html