程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JavaSE——網絡編程基礎知識,javase網絡編程

JavaSE——網絡編程基礎知識,javase網絡編程

編輯:JAVA綜合教程

JavaSE——網絡編程基礎知識,javase網絡編程


計算機網絡的分類: 

局域網(LAN)

  指在一個較小地理范圍內的各種計算機網絡設備互聯在一起的通信網絡,可以包括一個或多個子網,通常局限在幾千米的范圍之內。

城域網(MAN)

  主要由城域范圍內的各個局域網之間互連構成。

廣域網(WAN)

  由距離較遠的局域網與城域網互聯構成的通信網絡,通常是除了計算機設備以外,還要涉及一些電信通信方式。

OSI分層模型:

應用層 表示層 會話層 傳輸層 網絡層 數據鏈路層 物理層

TCP/IP分層模型:

應用層 傳輸層 網絡層 物理層+數據鏈路層

IP地址和端口號:

  IP地址用來標志網絡中的一個通信實體,這些通信實體可以是一台主機,一台打印機或者路由器的某一個端口。

  IP地址被分成A、B、C、D、E五類:

  A類:10.0.0.0~10.255.255.255

  B類:172.16.0.0~172.31.255.255

  C類:192.168.0.0~192.168.255.255

  端口是一個16位的整數,用來表示數據交給那個通信實體處理。因此,端口是通信程序與外界交流的出入口,它是一綜抽象的軟件結構,包括一些數據結構和I/O緩沖區。端口號可以是0~65535,通常被分為三類:

  公認端口:0~1023

  注冊端口:1024~49151

  動態/私有端口:49152~65535

TCP/IP協議:

  傳輸控制協議/網間協議。

  定義主機如何連入英特網及數據如何在他們之間傳輸的標准。

TCP握手協議:

    服務端與客戶端建立連接協議(三次握手)

  客戶端發送一個帶SYN(synchronize 即握手信號)標志的TCP報文到服務器,這是三次握手中的報文一;

  服務端回應客戶端的,這是三次握手中的第二個報文,這個報文同時帶ACK(Acknowledgement 中文譯為”確認字符“。它的作用是確認發來的數據已經接受無誤)標志,表示對剛才客戶端SYN報文的回應;同時有標志SYN給客戶端,詢問客戶端是否准備好進行數據通訊。

  客戶端此時會再次回應服務端一個ACK保溫,這是報文段三。

  

  完成三次握手,客戶端與服務端開始傳送數據。

  

  連接終止協議(四次揮手)

  由於TCP連接是全雙工的,因此每個方向都必須單獨進行關閉,這原則是當一方完成他的數據發送任務後就能發送一個FIN來終止這個方向上的連接,收到一個FIN只意味著這一方向上沒有數據流動,一個TCP連接在收到一個FIN後仍能發送數據,首先進行關閉的一方將執行主動關閉,而另一方執行被動關閉。

 

  TCP客戶端發送一個FIN,用來關掉客戶端到服務器的數據傳送(報文段4);

  服務器收到這個FIN,它發揮一個ACK,確認序號為收到的序號加一(報文段5),和SYN一樣,一個FIN將占用一個序號。

  服務器關閉客戶端的連接,發送一個FIN給客戶端(報文6);

  客戶端發回ACK報文表示確認,並將確認序號設置為收到的序號加一(報文段7)。

 

  連接終止過程中的四個狀態:

  FIN_WAIT_1:server 端主動要求關閉TCP連接,並且主動發送FIN後,等待cliect端回復ACK的狀態,對於client來說,即等待接受FIN報文的狀態。

  FIN_WAIT_2:當client端回復 ACK報文後進入的狀態。一般情況下,客戶端一旦收到FIN報文就會立刻回復ACK,所以FIN_WAIT_1狀態比較少見。

  TIME_WAIT:主動關閉的一方在完成自身發起的關閉請求後(即斷開連接),接收到被動一方的FIN後進入的狀態。

  CLOSE_WAIT:被動關閉方此時正等待上層應用發出關閉連接指令。

 

 

 

 

 

 

  

  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved