目錄
前言
Java程序可以非常方便地訪問互聯網上的HTTP服務、FTP服務等,並可以直接獲取互聯網上的遠程資源,還可以向遠程資源發送GET、POST請求。
一、網絡基礎知識
計算機網絡就是把分佈在不同地理區域的計算機通過專門的外部設備用通信線路互連成一個規模大、功能強的網絡系統,從而使衆多的計算機可以方便地互相傳遞信息,共享硬件、軟件、數據信息等資源。
1.1 網絡結構
計算機網絡通常是按照規模大小和延伸範圍來分類的,常見的劃分爲:局域網(LAN)、城域網(MAN)、廣域網(WAN)。Internet就是世界上最大的廣域網。
局域網:網絡所涉及的地理距離一般來說幾米至10公里以內,這種網絡的特點就是連接範圍窄、用戶數少、配置容易、連接速率高。
城域網:網絡在同一個城市,但不再同一地理範圍內的計算機互聯。這種網絡的連接距離可以在10公里至100公里。城域網比局域網擴展的距離更長,連接的計算機數量更多。
廣域網:覆蓋的範圍比城域網更廣,它一般是在不同城市之間的局域網或者城域網的網絡互聯,其地理範圍可從幾百公里到幾千公里。
如果按照網絡的拓撲結構來劃分,可以分爲總線型網絡、環形網絡、星型網絡、樹型網絡、網狀網絡等
(1)總線型網絡
總線型拓撲結構是一種共享通路的物理結構,這種結構中總線具有信息的雙向傳輸功能,總線一般採用同軸電纜或雙絞線。
優點:擴充或刪除一個節點很容易,不需停止網絡的正常工作,節點的故障不會殃及系統。由於各個節點共用一個總線作爲數據通路,信道的利用率高。
缺點:由於信道共享,連接的節點不宜過多,並且總線自身的故障可以導致系統的崩潰。
(2)環形網絡
各網絡節點連成環狀。數據信息沿一個方向傳送,通過各中間節點存儲轉發最後到達目的節點。
優點:結構沒有路徑選擇問題,網絡管理軟件實現簡單。
缺點:信息在傳輸過程中要經過環路上的許多節點,容易因某個節點發生故障而破壞整個網絡的通信;另外網絡的吞吐能力較差,適用於信息傳輸量不大的情況,一般用於局域網。
(3)星型網絡
星型拓撲結構是一種以中央結點爲中心,把若干外圍結點連接起來的輻射式互聯結構。
優點:簡單、容易建網,便於管理。
缺點:由於通信線路總長度較長,成本高。同時對中心節點的可靠性要求高,中心節點出故障將會引起整個網絡癱瘓。
(4)樹型網絡
網絡中各節點按層次進行連接,是一個在分級管理基礎上集中式的網絡,適合於各種統計管理系統。
優點:通信線路總長度較短,成本低。
缺點:任一節點故障均會影響它所在支路網絡的正常工作,而且處於越高層次的節點,其可靠性要求越高。
(5)網形網絡
這種結構無嚴格的佈局規定和構形,其中一個節點可取道若干路徑到達另一個節點。
優點:可靠性高。
缺點:所需通信線路總長度長,投資成本高,路徑選擇技術較複雜,網絡管理軟件也比較複雜。
1.2 網絡協議
想要讓電腦彼此之間能夠進行對話,必須在它們之間建立通信協議,使彼此之間能夠按照約定進行信息交換。通信協議主要負責對傳輸速率、傳輸代碼、代碼結構、傳輸控制步驟、出錯控制等指定處理標準。
通信協議通常由三部分組成:語義、語法和時序。
· 語義部分,決定“通信內容”,包括數據內容、含義以及控制信息等。
·語法部分,決定“對話格式”,包括數據的格式、編碼和信號等級等。
· 時序規則,決定“應答關係”,即何時通信、通信的順序、速率匹配和排序。
可以形象地把這三個要素描述爲:做什麼?怎麼做?誰先做?。
1.3 網絡分層模型
國際標準化組織ISO於1978年提出“開放系統互連參考模型”,即著名的ISO(Open System Interconnection)系統,即開放系統互連參考模型。
ISO模型力求將網絡簡化,並以模塊化的方式來設計網絡。它將計算機網絡分成物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層七層,經過幾十年的發展和推進,OSI模式已經成爲各種計算機網絡結構的參考標準。
自下而上爲:物理層(物理介質,比特流)、數據鏈路層(網卡、交換機)、網絡層(IP協議)、傳輸層(TCP/UDP協議)、會話層(創建/建立/斷開連接)、表示層(翻譯,編碼,壓縮,加密)、應用層(HTTP協議)
1.4 IP地址和端口號
IP地址是網絡中唯一的標識一個通信實體,這個通信實體既可以是一臺主機,也可以是一臺打印機,或者是路由器的某一個端口。而在基於IP協議的網絡中,每個被傳輸的數據包都要包括一個源IP地址和一個目的IP地址,當數據包在網絡中進行傳輸時,這兩個地址都保持不變,以確保網絡設備總能根據確定的IP地址,將數據包從源通信實體送往指定的目的通信實體。
IP地址被分成了A、B、C、D、E五類,其A、B、C三類由NIC在全球範圍內統一分配,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
IP地址用於唯一地標識網絡上的一個通信實體,但一個通信實體上存在多個通信程序同時提供網絡服務,此時我們還需要使用端口來標識通信程序。
端口是一個16位的整數,表示數據交給那個通信程序處理。因此,端口就是應用程序與外界交流的出入口,它是一種抽象的軟件結構,包括一些數據結構和I/O緩衝區。
不同程序處理不同端口上的數據,同一臺機器上不能有兩個程序使用同一個端口,端口號可以從0到65535,通常將它分爲如下三類。
·公認端口:端口範圍從0到1023,分配給了網絡中常見的網絡服務。
·註冊端口:端口範圍從1024到49151,這些端口並不捆綁網絡服務。
·動態端口:端口範圍從49152到65535,操作系統將這些端口動態的分配給各個進程,同一進程兩次分配有可能分配到不同的端口。
通過上述的概念講解,可以將IP理解爲某個人所在地方的地址,但是僅有地址是無法找到這個人的,我們還需要它所在的地點纔可以找到這個人,但是這個地點可能是固定的、暫時的、隨機的。所以,只有給出了具體的地址找到通信實體,然後再找到具體的端口找到通信程序,數據才能夠成功傳遞。