什麼是計算機網絡?
把分佈在不同地理區域的計算機與專門的外部設備用通信線路互聯成一個規模大、功能強的網絡系統,從而使衆多的計算機可以方便地互相傳遞信息,共享硬件、軟件、數據信息等資源。
計算機網絡主要功能:
·資源共享
·信息傳輸與集中處理
·均衡負荷與分佈處理
·綜合信息服務
計算機網絡分類:
·按規模大小和延伸範圍劃分:
局域網(LAN--local area network)
城域網(MAN--metropolitan area network)
廣域網(WAN--wide area network)
·按照網絡拓撲結構劃分:
環形網、星形網、總線型網
·按照通信傳輸的介質來劃分:
雙絞線網、同軸電纜網、光纖網和衛星網
·按照信號頻帶方式劃分:
基帶網(撥號)和寬帶網
計算機網絡工作模式:
·專用服務器結構(Server-Based):又稱爲“工作站/文件服務器”結構,由若干臺微機工作站與一臺或多臺文件服務器通過通信線路連接起來組成工作站存取服務器文件,共享存儲設備。
·客戶機/服務器模式(Client/Server, C/S):其中一臺或多臺較大的計算機集中進行共享數據庫的管理和存取,稱爲服務器,而將其他的應用處理工作分散到網絡中其他的微機上去做,構成分佈式的處理系統。
·對等式網絡(Peer-to-Peer,P2P):在拓撲結構上與專用Server與C/S相同。在對等式網絡結構中,沒有專用服務器,每一個工作站既可以起客戶機作用也可以起服務器作用。(點對點傳輸)
網絡通信協議及接口:
·什麼是網絡通信協議?
計算機網絡中實現通信必須有一些約定即通信協議,對速率、傳輸代碼、代碼結構、傳輸控制步驟、出錯控制等制定標準。
·網絡通信接口:爲了使兩個節點之間能夠進行對話,必須在它們之間建立通信工具(接口),使彼此之間能進行信息交換。接口包括兩部分:硬件裝置-實現節點之間的信息傳送;軟件裝置-規定雙方進行通信的約定協議。
通信協議分層思想:
·爲什麼要分層?
由於結點之間聯繫很複雜,在制定協議時,把複雜成分分解成一些簡單的成分,再將它們復合起來。最常用的複合方式是層次方式,即同層之間可以通信、上層可以調用下層,而與再下一層不發生關係。
·通信協議的分層規定:把用戶應用程序作爲最高層,把物理通信線路作爲最底層,將其間的協議處理分爲若干層,規定每層處理的任務,也規定每層的接口標準。
·數據的封裝與拆封:
封裝:發送方數據在網絡模型的各層傳送過程中加入頭尾的過程
拆封:接受方收到數據後去除相應的頭尾的過程。
常用網絡通信協議:
·TCP/IP協議
TCP(Transmission Control Protocol,傳輸控制協議)
IP(Internet Protocol,網際協議)
·HTTP協議(Hypertext Transfer Protocol,超文本傳輸協議)
·FTP協議(File Transfer Protocol,文件傳輸協議)
·SMTP協議(Simple Mail Transfer Protocol,簡單郵件傳輸協議)只是發送。
·POP3/IMAP協議
POP3(Post Office Protocol - version 3,郵局協議版本3)
IMAP(Internet Message Access Protocol,Internet消息訪問協議)
IP地址/域名/端口
·IP地址:
TCP/IP使用IP地址來標識源地址和目的地址
IP地址格式:166.111.78.90
目前正在普遍使用的IP協議時第四版的,稱爲IPv4,新增版本IPv6協議能標識很龐大的地址。
·域名(Domain Address):
·便於記憶的、字符串形式
·與IP地址之間存在映射關係,由位於網絡中的域名服務器(DNS,Domain Name Server)負責將域名解析爲相應的IP地址。
·端口(Port):
·邏輯意義上的數據傳輸通道、或者說模擬通道。TCP/IP協議規定,每臺計算機擁有65536個這種邏輯通信端口。時分複用,把1個物理端口分時的分開被多個邏輯端口來利用。
·端口號:用於標識這些端口的整數編號,取值範圍0~65535。
相關API
·java.net.InetAddress:32位或128位無符號數字標識的IP地址
·java.net.Inet4Address:繼承了Inet4Address類,以32位無符號數字表示的IPv4地址。
·java.net.Inet6Address:以128位無符號數字表示的IPv6地址。其典型標識形式是由冒號分隔開的8段、取值範圍0000~FFFF的十六進制數值,例如:1080:0:0:0:8:800:200C:417A
URL
·URL(Uniform Resource Locator,統一資源定位器)用於標識Internet上資源的地址。
·格式:<協議名><資源所在主機名>[:<端口號>]<資源名>
·java.net包定義了對應的URL類,常用方法如下:
public URL(String spec)
public final InputStream openStream() throws IOException //返回字節流
URI(Uniform Resource Indicator):統一資源標示符
其實就是URL的後半段。
Socket編程:
·兩個進程間可以通過一個雙向的網絡通信連接實現數據交換,這種通信鏈路的端點被稱爲套接字(Socket)。
通常用來實現Client-Server連接。
·建立連接時所需的尋址信息
·遠程計算機的機器名或IP地址
·試圖連接的端口號(Port number)
·java.net包中定義的兩個類Socket和ServerSocket,分別用來實現雙向連接的Client和server端。
Socket編程基本步驟:
1.建立網絡連接
2.打開連接到Socket的輸入/輸出流;
3.通過已打開的i/o流進行數據讀寫操作;
4.關閉已打開的i/o流和Socket。