Java網絡編程 -- 網絡協議


OSI網絡七層協議

為使不同計算機廠家的計算機能夠互相通信,以便在更大的范圍內建立計算機網絡,有必要建立一個國際范圍的網絡體系結構標准。OSI網絡七層協議就是在這個基礎上制定出來的,其從最底層開始依次是物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層。

img

各層主要功能

物理層:使原始的數據比特流能在物理介質上傳輸
數據鏈路層:通過校驗,確認和反饋重發等手段,形成穩定的數據鏈路
網絡層:進行路由選擇和流量控制(IP協議)
傳輸層:提供可靠的端口到端口的數據傳輸服務(TCP/UDP協議)
會話層:負責建立,管理和終止進程之間的會話和數據交換
表示層:負責數據格式轉換,數據加密和解密,壓縮與解壓縮等
應用層:為用戶的應用進程提供網絡服務

傳輸控制協議TCP

傳輸控制協議TCP是網絡中一個重要的傳輸層協議。TCP提供面向連接的,可靠,有序的字節流傳輸服務。應用程序在使用TCP之前,需要通過三次握手建立TCP連接。連接結束后需要通過四次揮手斷開連接。

img

TCP握手機制

建立連接時三次握手:

img

斷開連接時四次揮手:

img

用戶數據報協議UDP

用戶數據報協議UDP是網絡中一個重要的傳輸層協議。提供無連接的,不可靠的數據報盡力傳輸服務。由於UDP無需建立連接,首部開銷小,協議格式也更簡潔。

img

TCP和UDP的比較

TCP UDP
面向連接 無連接
提供可靠保證 不可靠
相對較慢 相對較快
占用資源多 占用資源少

Socket編程

Socket編程是網絡中應用最廣泛的網絡應用編程接口,實現了三種底層協議接口

  • 數據報類型套接字SOCK_DGRAM (面向UDP接口)
  • 流式套接字SOCK_STREAM(面向TCP接口 )
  • 原始套接字SOCK_RAW(面向網絡層協議接口IP,ICMP等)

主要Socket API及其調用過程:

img

Socket API核心方法
只能用於服務端的listen(), accept()方法,只能用於客戶端的connecty()方法,還有socket(), bind(), send(), recv(), sendTo(), recvFrom(), close()等方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM