資料內(nèi)容:
1. 什么是網(wǎng)絡(luò)編程
網(wǎng)絡(luò)編程的本質(zhì)是多臺計算機(jī)之間的數(shù)據(jù)交換。數(shù)據(jù)傳遞本身沒有多大的難度,不就是把一個設(shè)備中的數(shù)據(jù)
發(fā)送給其他設(shè)備,然后接受另外一個設(shè)備反饋的數(shù)據(jù)?,F(xiàn)在的網(wǎng)絡(luò)編程基本上都是基于請求/響應(yīng)方式的,也
就是一個設(shè)備發(fā)送請求數(shù)據(jù)給另外一個,然后接收另一個設(shè)備的反饋。在網(wǎng)絡(luò)編程中,發(fā)起連接程序,也就
是發(fā)送第一次請求的程序,被稱作客戶端(Client),等待其他程序連接的程序被稱作服務(wù)器(Server)。客戶端
程序可以在需要的時候啟動,而服務(wù)器為了能夠時刻相應(yīng)連接,則需要一直啟動。
例如以打電話為例,首先撥號的人類似于客戶端,接聽電話的人必須保持電話暢通類似于服務(wù)器。連接一旦
建立以后,就客戶端和服務(wù)器端就可以進(jìn)行數(shù)據(jù)傳遞了,而且兩者的身份是等價的。在一些程序中,程序既
有客戶端功能也有服務(wù)器端功能,最常見的軟件就是QQ、微信這類軟件了。
2. 網(wǎng)絡(luò)編程中兩個主要的問題
1. 一個是如何準(zhǔn)確的定位網(wǎng)絡(luò)上一臺或多臺主機(jī)
2. 另一個就是找到主機(jī)后如何可靠高效的進(jìn)行數(shù)據(jù)傳輸。
在TCP/IP協(xié)議中IP層主要負(fù)責(zé)網(wǎng)絡(luò)主機(jī)的定位,數(shù)據(jù)傳輸?shù)穆酚?,?/span>IP地址可以唯一地確定Internet上的一臺
主機(jī)。
而TCP層則提供面向應(yīng)用的可靠(TCP)的或非可靠(UDP)的數(shù)據(jù)傳輸機(jī)制,這是網(wǎng)絡(luò)編程的主要對象,
一般不需要關(guān)心IP層是如何處理數(shù)據(jù)的。
目前較為流行的網(wǎng)絡(luò)編程模型是客戶機(jī)/服務(wù)器(C/S)結(jié)構(gòu)。即通信雙方一方作為服務(wù)器等待客戶提出請求
并予以響應(yīng)??蛻魟t在需要服務(wù)時向服務(wù)器提 出申請。服務(wù)器一般作為守護(hù)進(jìn)程始終運(yùn)行,監(jiān)聽網(wǎng)絡(luò)端口,
一旦有客戶請求,就會啟動一個服務(wù)進(jìn)程來響應(yīng)該客戶,同時自己繼續(xù)監(jiān)聽服務(wù)端口,使后來的客戶也 能及
時得到服務(wù)。
3. 網(wǎng)絡(luò)協(xié)議是什么
在計算機(jī)網(wǎng)絡(luò)要做到井井有條的交換數(shù)據(jù),就必須遵守一些事先約定好的規(guī)則,比如交換數(shù)據(jù)的格式、是否
需要發(fā)送一個應(yīng)答信息。這些規(guī)則被稱為網(wǎng)絡(luò)協(xié)議。
4. 為什么要對網(wǎng)絡(luò)協(xié)議分層
簡化問題難度和復(fù)雜度。由于各層之間獨立,我們可以分割大問題為小問題。
靈活性好。當(dāng)其中一層的技術(shù)變化時,只要層間接口關(guān)系保持不變,其他層不受影響。
易于實現(xiàn)和維護(hù)。
促進(jìn)標(biāo)準(zhǔn)化工作。分開后,每層功能可以相對簡單地被描述
5. 計算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)
OSI參考模型
OSI(Open System Interconnect),即開放式系統(tǒng)互聯(lián)。一般都叫OSI參考模型,是ISO(國際標(biāo)準(zhǔn)化組
織)組織在1985年研究的網(wǎng)絡(luò)互連模型。ISO為了更好的使網(wǎng)絡(luò)應(yīng)用更為普及,推出了OSI參考模型,這樣所
有的公司都按照統(tǒng)一的標(biāo)準(zhǔn)來指定自己的網(wǎng)絡(luò),就可以互通互聯(lián)了。
OSI定義了網(wǎng)絡(luò)互連的七層框架(物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層、應(yīng)用層)。
TCP/IP參考模型
TCP/IP四層協(xié)議(數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層)
1. 應(yīng)用層:應(yīng)用層最靠近用戶的一層,是為計算機(jī)用戶提供應(yīng)用接口,也為用戶直接提供各種網(wǎng)絡(luò)服務(wù)。我
們常見應(yīng)用層的網(wǎng)絡(luò)服務(wù)協(xié)議有:HTTP,HTTPS,FTP,TELNET等。
2. 傳輸層:建立了主機(jī)端到端的鏈接,傳輸層的作用是為上層協(xié)議提供端到端的可靠和透明的數(shù)據(jù)傳輸服
務(wù),包括處理差錯控制和流量控制等問題。該層向高層屏蔽了下層數(shù)據(jù)通信的細(xì)節(jié),使高層用戶看到的只是
在兩個傳輸實體間的一條主機(jī)到主機(jī)的、可由用戶控制和設(shè)定的、可靠的數(shù)據(jù)通路。我們通常說的,TCP
UDP就是在這一層。端口號既是這里的“端”。
3. 網(wǎng)絡(luò)層:本層通過IP尋址來建立兩個節(jié)點之間的連接,為源端的運(yùn)輸層送來的分組,選擇合適的路由和交
換節(jié)點,正確無誤地按照地址傳送給目的端的運(yùn)輸層。就是通常說的IP層。這一層就是我們經(jīng)常說的IP協(xié)議
層。IP協(xié)議是Internet的基礎(chǔ)。
4. 數(shù)據(jù)鏈路層:通過一些規(guī)程或協(xié)議來控制這些數(shù)據(jù)的傳輸,以保證被傳輸數(shù)據(jù)的正確性。實現(xiàn)這些規(guī)程或
協(xié)議的 硬件 和軟件加到物理線路,這樣就構(gòu)成了數(shù)據(jù)鏈路,
6. 什么是TCP/IP和UDP
TCP/IP即傳輸控制/網(wǎng)絡(luò)協(xié)議,是面向連接的協(xié)議,發(fā)送數(shù)據(jù)前要先建立連接(發(fā)送方和接收方的成對的
兩個之間必須建 立連接),TCP提供可靠的服務(wù),也就是說,通過TCP連接傳輸?shù)臄?shù)據(jù)不會丟失,沒有重
復(fù),并且按順序到達(dá)。
UDP它是屬于TCP/IP協(xié)議族中的一種。是無連接的協(xié)議,發(fā)送數(shù)據(jù)前不需要建立連接,是沒有可靠性的
協(xié)議。因為不需要建立連接所以可以在在網(wǎng)絡(luò)上以任何可能的路徑傳輸,因此能否到達(dá)目的地,到達(dá)目
的地的時間以及內(nèi)容的正確性都是不能被保證的。
7. TCP與UDP區(qū)別