天天看點

java網絡基礎_Java 網絡程式設計(一) 網絡基礎知識

網絡程式設計的目的:直接或間接地通過網絡協定與其他計算機進行通訊。

網絡程式設計中有兩個主要的問題:

1.如何準确地定位網絡上一台或多台主機。

2.找到主機後如何可靠高效地進行資料傳輸。

目前較為流行的網絡程式設計模型是用戶端/伺服器(C/S)結構。

即通信雙方一方作為伺服器等待客戶提出請求并予以相應。客戶則在需要服務時向伺服器提出申請。

伺服器始終運作,監聽網絡端口,一旦有客戶請求,就會啟動一個服務線程來響應該客戶,同時自己繼續監聽服務視窗,使後來的客戶也能及時得到服務。

IP位址

IP網絡中每台主機都必須有一個唯一的IP位址,IP位址是一個邏輯位址。

英特網上的IP位址具有全球唯一性。

32位,四個位元組,常用點分十進制的格式表示。

例如:192.168.0.200

協定

為進行網絡中的資料交換(通信)而建立的規則、标準或約定。(=語義+文法+規則)。

不同層具有各自不同的協定。

ISO/OSI七層參考模型

網絡體系結構解決異質性問題采用的是分層的方法——把複雜的網絡互聯問題劃分為若幹個較小的、單一的問題,在不同層上予以解決。

OSI(Open System Interconnection)參考模型将網絡的不同功能劃分為7層:

應用層:處理網絡應用

表示層:資料表示

會話層:主機間通信

傳輸層:端到端的連接配接

網絡層:尋址和最短路徑

資料鍊路層:媒體通路(接入)

實體層:二進制傳輸

java網絡基礎_Java 網絡程式設計(一) 網絡基礎知識

通信實體的對等層之間不允許直接通信,各層之間是嚴格的單向依賴,上層(Service user)使用下層提供的服務,下層(Service provider)向上層提供服務。

對等層通信的實質:對等層實體之間虛拟通信,下層向上層提供服務,實際通信在最底層完成。

OSI各層所使用的協定:

應用層:Telnet、FTP、HTTP、DNS、SMTP、POP3

傳輸層:TCP、UDP

TCP:面向連接配接的可靠的傳輸協定。

UDP:是無連接配接的,不可靠的傳輸協定。

網絡層:IP、ICMP、IGMP

端口

在網際網路上傳輸的資料都包含有用來識别目的地的IP位址和端口号。

IP位址用來辨別網絡上的計算機,而端口号用來指明該計算機上的應用程式。

端口是一種抽象的軟體結構(包括一些資料結構和I/O緩沖區)。

應用程式通過系統調用與某端口建立連接配接(binding)後,傳輸層傳給該端口的資料都被相應的程序所接收,相應程序發給傳輸層的資料都通過該端口輸出。

端口用一個整數型辨別符來表示,即端口号。

端口号跟協定相關,TCP/IP傳輸層的兩個協定TCP和UDP是完全獨立的兩個軟體子產品,是以各自的端口号也互相獨立,端口通常稱為協定端口(protocol port),簡稱端口。

端口使用一個16位的數字來表示,它的範圍是0~65535,1024以下的端口号保留給預定義的服務。例如,http使用80端口。

資料封裝

一台計算機要發送資料到另一台計算機,資料首先必須打包,打包的過程稱為封裝。

封裝就是在資料前面加上特定的協定頭部。

OSI參考模型中,對等層協定之間的交換的資訊單元稱為協定資料單元(PDU, Protocol Data Unit)。

OSI參考模型中的每一層都要依靠下一層提供的服務。

為了提供服務,下層把上層的PDU作為本層的資料封裝,然後加入本層的頭部(和尾部)。頭部中含有完成資料傳輸所需的控制資訊。

這樣,資料自上而下遞交的過程實際上就是不斷封裝的過程。到達目的地後自下而上遞交的過程就是不斷拆封的過程。由此可知,在實體線路上傳輸的資料,其外面實際上被包封了多層“信封”。

網絡程式設計的目的:直接或間接地通過網絡協定與其他計算機進行通訊。

網絡程式設計中有兩個主要的問題:

1.如何準确地定位網絡上一台或多台主機。

2.找到主機後如何可靠高效地進行資料傳輸。

目前較為流行的網絡程式設計模型是用戶端/伺服器(C/S)結構。

即通信雙方一方作為伺服器等待客戶提出請求并予以相應。客戶則在需要服務時向伺服器提出申請。

伺服器始終運作,監聽網絡端口,一旦有客戶請求,就會啟動一個服務線程來響應該客戶,同時自己繼續監聽服務視窗,使後來的客戶也能及時得到服務。

IP位址

IP網絡中每台主機都必須有一個唯一的IP位址,IP位址是一個邏輯位址。

英特網上的IP位址具有全球唯一性。

32位,四個位元組,常用點分十進制的格式表示。

例如:192.168.0.200

協定

為進行網絡中的資料交換(通信)而建立的規則、标準或約定。(=語義+文法+規則)。

不同層具有各自不同的協定。

ISO/OSI七層參考模型

網絡體系結構解決異質性問題采用的是分層的方法——把複雜的網絡互聯問題劃分為若幹個較小的、單一的問題,在不同層上予以解決。

OSI(Open System Interconnection)參考模型将網絡的不同功能劃分為7層:

應用層:處理網絡應用

表示層:資料表示

會話層:主機間通信

傳輸層:端到端的連接配接

網絡層:尋址和最短路徑

資料鍊路層:媒體通路(接入)

實體層:二進制傳輸

java網絡基礎_Java 網絡程式設計(一) 網絡基礎知識

通信實體的對等層之間不允許直接通信,各層之間是嚴格的單向依賴,上層(Service user)使用下層提供的服務,下層(Service provider)向上層提供服務。

對等層通信的實質:對等層實體之間虛拟通信,下層向上層提供服務,實際通信在最底層完成。

OSI各層所使用的協定:

應用層:Telnet、FTP、HTTP、DNS、SMTP、POP3

傳輸層:TCP、UDP

TCP:面向連接配接的可靠的傳輸協定。

UDP:是無連接配接的,不可靠的傳輸協定。

網絡層:IP、ICMP、IGMP

端口

在網際網路上傳輸的資料都包含有用來識别目的地的IP位址和端口号。

IP位址用來辨別網絡上的計算機,而端口号用來指明該計算機上的應用程式。

端口是一種抽象的軟體結構(包括一些資料結構和I/O緩沖區)。

應用程式通過系統調用與某端口建立連接配接(binding)後,傳輸層傳給該端口的資料都被相應的程序所接收,相應程序發給傳輸層的資料都通過該端口輸出。

端口用一個整數型辨別符來表示,即端口号。

端口号跟協定相關,TCP/IP傳輸層的兩個協定TCP和UDP是完全獨立的兩個軟體子產品,是以各自的端口号也互相獨立,端口通常稱為協定端口(protocol port),簡稱端口。

端口使用一個16位的數字來表示,它的範圍是0~65535,1024以下的端口号保留給預定義的服務。例如,http使用80端口。

資料封裝

一台計算機要發送資料到另一台計算機,資料首先必須打包,打包的過程稱為封裝。

封裝就是在資料前面加上特定的協定頭部。

OSI參考模型中,對等層協定之間的交換的資訊單元稱為協定資料單元(PDU, Protocol Data Unit)。

OSI參考模型中的每一層都要依靠下一層提供的服務。

為了提供服務,下層把上層的PDU作為本層的資料封裝,然後加入本層的頭部(和尾部)。頭部中含有完成資料傳輸所需的控制資訊。

這樣,資料自上而下遞交的過程實際上就是不斷封裝的過程。到達目的地後自下而上遞交的過程就是不斷拆封的過程。由此可知,在實體線路上傳輸的資料,其外面實際上被包封了多層“信封”。