計算機網(wǎng)絡是什么嫩海?
簡單地理解,計算機網(wǎng)絡的任務就是傳輸數(shù)據(jù)囚痴。為了完成這一復雜的任務叁怪,國際標準化組織ISO提供了OSI參考模型,這種模型把互聯(lián)網(wǎng)網(wǎng)絡分為7層深滚,分別是:
物理層奕谭、數(shù)據(jù)鏈路層涣觉、網(wǎng)絡層、傳輸層展箱、會話層旨枯、表示層和應用層。
每個層有明確的分工混驰,并且在層與層之間攀隔,下層為上層提供服務。這種分層的思想簡化了網(wǎng)絡系統(tǒng)的設計過程栖榨。
例如:
1昆汹、在設計應用層時候只需要考慮創(chuàng)建滿足用戶實際需求的應用;
2婴栽、在設計傳輸層時满粗,只需要考慮如何在兩個主機之間傳輸數(shù)據(jù);
3愚争、在設計網(wǎng)絡層時映皆,只需要考慮如何在網(wǎng)絡上找到一條發(fā)送數(shù)據(jù)的路徑,即路由轰枝。
由于OSI參考模型過于龐大和復雜捅彻,使它難以投入到實際運用中。與OSI參考模型相似的TCP/IP參考模型洗去了網(wǎng)絡分層的思想鞍陨,但是對網(wǎng)絡的層次做了簡化步淹,并且在網(wǎng)絡各層(除了主機-網(wǎng)絡層外)都提供了完善的協(xié)議,這些協(xié)議構(gòu)成了TCP/IP協(xié)議集诚撵,簡稱TCP/IP協(xié)議缭裆。
TCP/IP參考模型分為4個層:應用層、傳輸層寿烟、網(wǎng)絡互聯(lián)層和主機-網(wǎng)絡層澈驼。在每一層都有相應的協(xié)議,IP協(xié)議和TCP協(xié)議是協(xié)議集中最核心的兩個協(xié)議韧衣。
IP協(xié)議位于網(wǎng)絡互聯(lián)層盅藻,用IP地址來標識網(wǎng)絡上的各個主機,IP協(xié)議把數(shù)據(jù)分為若干數(shù)據(jù)包畅铭,然后為這些數(shù)據(jù)包確定合適的路由氏淑。路由就是把數(shù)據(jù)包從源主機發(fā)送到目標主機的路徑。
TCP協(xié)議位于傳輸層硕噩,保證兩個進程之間可靠地傳輸數(shù)據(jù)假残。每當兩個進程之間進行通信,就會建立一個TCP連接,TCP協(xié)議用端口來標識TCP連接的兩個端點辉懒。在傳輸層還有一個UDP協(xié)議阳惹,它與TCP協(xié)議的區(qū)別是,UDP不保證可靠地傳輸數(shù)據(jù)眶俩。
建立在TCP/IP協(xié)議基礎(chǔ)上的網(wǎng)絡程序一般都采用客戶端/服務器通信模擬股市莹汤。服務器提供服務,客戶程序獲得服務颠印。服務器程序一般晝夜運行纲岭,時刻等待客戶的請求并及時作出響應。
Java網(wǎng)絡程序致力于實現(xiàn)應用層线罕,傳輸層向應用層提供了套接字Socket接口止潮,Socket封裝了下層的數(shù)據(jù)傳輸細節(jié),應用層的程序通過Socket來建立與遠程主機的連接钞楼,以及進行數(shù)據(jù)傳輸喇闸。在Java中,有三種套接字類:
java.net.Socket询件、java.net.ServerSocket和DatagramSocket燃乍。
其中Socket和ServerSocket類建立在TCP協(xié)議基礎(chǔ)上;DatagramSocket類建立在UDP協(xié)議基礎(chǔ)上宛琅。