Java之網絡基礎知識

1、網絡是什麼

網絡也稱爲計算機網絡,是指將地理位置不同的具有獨立功能的多臺計算機及其外部設備,通過通信線路連接起來,在網絡操作系統、網絡管理軟件及網絡通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。計算機網絡實現將千千萬萬臺計算機連接起來,形成一個大的整體。

2、網絡體系

網絡體系主要的分爲三種:OSI七層協議、TCP/IP四層協議、五層協議。
在這裏插入圖片描述

2.1、OSI七層模型

  OSI意爲開放式系統互聯,是國際標準組織制定的。這個模型把網絡通信的工作分爲7層,分別是物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層和應用層。1至4層被認爲是低層,這些層與數據移動密切相關;5至7層是高層,包含應用程序級的數據。每一層負責一項具體的工作,然後把數據傳送到下一層。

  第1層是物理層,實際上就是佈線、光纖、網卡和其它用來把兩臺設備連接在一起的東西。

  第2層是數據鏈路層,運行以太網等協議。將物理層的bit數據組織成幀,並以其爲單元進行傳輸。通過校驗、確認和反饋重發等操作將不可靠的物理鏈路改造成對網絡層來說無差錯的數據鏈路。採用流量控制,以防止接收方因來不及處理髮送方來的高速數據而導致緩衝器溢出及線路阻塞等。

  第3層是網絡層,在計算機網絡中進行通信的兩個計算機之間可能會經過很多個數據鏈路,也可能還要經過很多通信子網。網絡層的任務就是選擇合適的網間路由和交換結點, 確保數據及時傳送。網絡層將數據鏈路層提供的幀組成數據包,包中封裝有網絡層包頭,其中含有邏輯地址信息- -源站點和目的站點地址的網絡地址。

  第4層是傳輸層,第4層的數據單元也稱作數據包。但是,當你談論TCP等具體的協議時又有特殊的叫法,TCP的數據單元稱爲段(segments),而UDP協議的數據單元稱爲數據報(datagrams)。這個層負責獲取全部信息,因此,它必須跟蹤數據單元碎片、亂序到達的數據包和其它在傳輸過程中可能發生的危險。

  第5層是會話層,在會話層及以上的高層次中,數據傳送的單位不再另外命名,統稱爲報文。會話層不參與具體的傳輸,它提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制。

  第6層是表示層,這一層主要解決用戶信息的語法表示問題。它將欲交換的數據從適合於某一用戶的抽象語法,轉換爲適合於OSI系統內部使用的傳送語法。即提供格式化的表示和轉換數據服務。數據的壓縮和解壓縮, 加密和解密等工作都由表示層負責。

  第7層是應用層,是專門用於應用程序的。應用層確定進程之間通信的性質以滿足用戶需要以及提供網絡與用戶應用軟件之間的接口服務。如果你的程序需要一種具體格式的數據,你可以發明一些你希望能夠把數據發送到目的地的格式,並且創建一個第7層協議。

2.2、TCP/IP四層模型

  TCP/IP協議在一定程度上參考了OSI的體系結構。OSI模型共有七層,而在TCP/IP協議中,它們被簡化爲了四個層次。

  應用層、表示層、會話層三個層次提供的服務相差不是很大,所以在TCP/IP協議中,它們被合併爲應用層一個層次。

  由於運輸層和網絡層在網絡協議中的地位十分重要,所以在TCP/IP協議中它們被作爲獨立的兩個層次。

  因爲數據鏈路層和物理層的內容相差不多,所以在TCP/IP協議中它們被歸併在網絡接口層一個層次裏。只有四層體系結構的TCP/IP協議,與有七層體系結構的OSI相比要簡單了不少,也正是這樣,TCP/IP協議在實際的應用中效率更高,成本更低。

3、協議分類

3.1、UDP協議

  UDP協議全稱爲用戶數據報協議(User Datagram Protocol)。UDP是無連接通信協議,即在數據傳輸時,數據的發送端和接收端不建立邏輯連接。簡單來說,當一臺計算機向另外一臺計算機發送數據時,發送端不會確認接收端是否存在,就會發出數據,同樣接收端在收到數據時,也不會向發送端反饋是否收到數據。

  由於使用UDP協議消耗資源小,通信效率高,所以通常都會用於音頻、視頻和普通數據的傳輸例如視頻會議都使用UDP協議,因爲這種情況即使偶爾丟失一兩個數據包,也不會對接收結果產生太大影響。

  但是在使用UDP協議傳送數據時,由於UDP的面向無連接性,不能保證數據的完整性,因此在傳輸重要數據時不建議使用UDP協議。

3.2、TCP協議

  TCP協議也稱爲傳輸控制協議 (Transmission Control Protocol)。TCP協議是面向連接的通信協議,即傳輸數據之前,在發送端和接收端建立邏輯連接,然後再傳輸數據,它提供了兩臺計算機之間可靠無差錯的數據傳輸。

  在TCP連接中必須要明確客戶端與服務器端,由客戶端向服務端發出連接請求,每次連接的創建都需要經過“三次握手”。

  三次握手:TCP協議中,在發送數據的準備階段,客戶端與服務器之間的三次交互,以保證連接的可靠。三次握手也是面試的重點!

  1. 第一次握手,客戶端向服務器端發出連接請求,等待服務器確認。
  2. 第二次握手,服務器端向客戶端回送一個響應,通知客戶端收到了連接請求。
  3. 第三次握手,客戶端再次向服務器端發送確認信息,確認連接。

   完成三次握手,連接建立後,客戶端和服務器就可以開始進行數據傳輸了。由於這種面向連接的特性,TCP協議可以保證傳輸數據的安全,所以應用十分廣泛,例如下載文件、瀏覽網頁等。

4、網絡三要素

  網絡編程三要素分別是協議、IP地址和端口號

4.1、協議

  協議是計算機網絡通信必須遵守的規則,常見的就是上述UDP協議和TCP協議。在通信過程中,必須按照協議中規定去傳輸數據,這樣可以使發送方和接收方按照相同的規則去封裝解析數據。

4.2、IP地址

  IP地址:指互聯網協議地址(Internet Protocol Address)。IP地址用來給一個網絡中的計算機設備做唯一的編號。每一臺計算機都有自己的IP,每個IP都不會相同。

4.2.1、IP地址分類

  IPv4:是一個32位的二進制數,通常被分爲4個字節,例如192.168.138.100 。這樣的表示規則那麼最多可以表示42億個!

  IPv6:由於互聯網的蓬勃發展,IP地址的需求量愈來愈大,42億都快不夠用了!但是網絡地址資源有限,使得IP的分配越發緊張。爲了擴大地址空間,擬通過IPv6重新定義地址空間,採用128位地址長度,每16個字節一組,分成8組十六進制數,表示成ABCD:EF01:2345:6789 :ABCD:EF01:2345:6789,號稱可以爲全世界的每一粒沙子編上一個網址,這樣就解決了網絡地址資源數量不夠的問題。

4.2.2、查看IP

windows下的話就是Win + R,輸入cmd,打開命令提示符,輸入ipconfig就可以查看了
linux下的話命令是ip addr

4.3、端口號

  網絡的通信,本質上是兩個進程(應用程序)的通信。每臺計算機都有很多的進程,如果說IP地址可以唯一標識網絡中的設備,那麼端口號就可以唯一標識設備中的進程了。

  因此,利用協議+IP地址+端口號 三元組合,就可以標識網絡中的進程了,那麼進程間的通信就可以利用這個標識與其它進程進行交互。

有錯誤的地方敬請指出!覺得寫得可以的話麻煩給個贊!歡迎大家評論區或者私信交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章