IT培訓(xùn)網(wǎng)
IT在線學(xué)習(xí)
如今,互聯(lián)網(wǎng)一詞已被人們所熟知,它廣泛應(yīng)用于人類生活的各個(gè)方面。但是究其歷史,互聯(lián)網(wǎng)是由1971年的ARPANET發(fā)展而來(lái)的。ARPANET是一個(gè)計(jì)算機(jī)網(wǎng)絡(luò),它的出現(xiàn)比互聯(lián)網(wǎng)要早得多。
網(wǎng)絡(luò)中的計(jì)算機(jī)為了彼此之間進(jìn)行通信形成一個(gè)通信網(wǎng)絡(luò),就必須首先制定網(wǎng)絡(luò)協(xié)議。早期的計(jì)算機(jī)網(wǎng)絡(luò),根據(jù)廠商的不同有著自己規(guī)定的一套協(xié)議,Microsoft、IBM和Apple等公司都有各自的互不兼容的一套網(wǎng)絡(luò)協(xié)議。這就像一群人有的說(shuō)中文,有的說(shuō)英語(yǔ),有的說(shuō)德語(yǔ),說(shuō)同一種語(yǔ)言的人之間可以交流,而說(shuō)不同語(yǔ)言的人之間就難以交流了。
網(wǎng)絡(luò)協(xié)議的不兼容阻礙了互聯(lián)網(wǎng)的發(fā)展。而隨著網(wǎng)絡(luò)的發(fā)展,規(guī)模和覆蓋面越來(lái)越大,從而形成了統(tǒng)一的標(biāo)準(zhǔn)OSI(開(kāi)放系統(tǒng)互連)。OSI模型從上到下具有7層結(jié)構(gòu),分別是應(yīng)用層、表示層、會(huì)話層、運(yùn)輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。其中,應(yīng)用層定義了應(yīng)用程序之間通信的協(xié)議,運(yùn)輸層主要用來(lái)確保端到端的數(shù)據(jù)通信正常,網(wǎng)絡(luò)層負(fù)責(zé)在各個(gè)主機(jī)之間傳輸數(shù)據(jù)。
在互聯(lián)網(wǎng)所使用的各種網(wǎng)絡(luò)協(xié)議中,最重要的是TCP和IP協(xié)議。如今人們常說(shuō)的TCP/IP協(xié)議并不一定單指TCP和IP這兩個(gè)具體的協(xié)議,而通常是表示互聯(lián)網(wǎng)所使用的整個(gè)TCP/IP協(xié)議族。
下面介紹一下TCP/IP協(xié)議。
計(jì)算機(jī)進(jìn)行通信時(shí),類似于現(xiàn)實(shí)中的郵政通信,計(jì)算機(jī)通信的雙方必須知道對(duì)方的地址才行。在TCP/IP協(xié)議中,IP地址是互聯(lián)網(wǎng)上每臺(tái)計(jì)算機(jī)的唯一標(biāo)識(shí)。目前,最廣泛采用的是IPv4版本的IP地址,如192.168.100.179。IP地址是采用點(diǎn)分十進(jìn)制的一組數(shù)組成的。一般情況下,網(wǎng)絡(luò)上一臺(tái)設(shè)備只有一個(gè)IP地址,但路由器需要同時(shí)接入到兩個(gè)及以上的網(wǎng)絡(luò),因此,路由器就會(huì)有兩個(gè)或多個(gè)IP地址。通常計(jì)算機(jī)中負(fù)責(zé)IP數(shù)據(jù)包發(fā)送/接收的硬件設(shè)備是網(wǎng)卡,一個(gè)IP地址對(duì)應(yīng)一張網(wǎng)卡,網(wǎng)卡就是計(jì)算機(jī)的網(wǎng)絡(luò)接口。
一臺(tái)計(jì)算機(jī)通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)將數(shù)據(jù)發(fā)送到另一臺(tái)計(jì)算機(jī),數(shù)據(jù)是逐層封裝的。在IP層,IP協(xié)議負(fù)責(zé)將數(shù)據(jù)從一個(gè)IP地址發(fā)送到另一個(gè)IP地址。首先數(shù)據(jù)需要按照IP協(xié)議分割成多個(gè)小數(shù)據(jù)塊,塊長(zhǎng)度一般為1024字節(jié),這個(gè)小數(shù)據(jù)塊稱為IP數(shù)據(jù)報(bào)。發(fā)送出去的IP包,由于整個(gè)互聯(lián)網(wǎng)的架構(gòu)非常復(fù)雜,兩臺(tái)計(jì)算機(jī)之間經(jīng)常有多條線路,因此,中間的路由器就負(fù)責(zé)轉(zhuǎn)發(fā)一個(gè)IP包。IP包的特點(diǎn)是按塊發(fā)送,途經(jīng)多個(gè)路由,但由于路由器的承載能力有限,當(dāng)大批IP包同時(shí)到達(dá)時(shí),就會(huì)因路由器處理不過(guò)來(lái)而丟包。另外,IP包經(jīng)過(guò)多個(gè)路由器的轉(zhuǎn)發(fā),在路由器中的排隊(duì)時(shí)間也不同,因此,到達(dá)接收端的順序也不會(huì)完全按照發(fā)送時(shí)的順序。一個(gè)IP包除了包含要傳輸?shù)臄?shù)據(jù)外,還包含源IP地址和目標(biāo)IP地址。
IP協(xié)議之上的是TCP協(xié)議,TCP稱為傳輸控制協(xié)議。TCP協(xié)議在兩臺(tái)計(jì)算機(jī)之間建立的是可靠的連接,因此,TCP報(bào)文是按順序處理的。形象地說(shuō),TCP協(xié)議是通過(guò)握手建立連接的,再確保按順序收到下層的每個(gè)IP包,如果IP包丟失了,就向發(fā)送端請(qǐng)求重發(fā)。
應(yīng)用層上許多常用的應(yīng)用都是建立在TCP協(xié)議上的,例如,萬(wàn)維網(wǎng)瀏覽器上使用的HTTP協(xié)議,發(fā)送電子郵件的SMTP協(xié)議等。
TCP協(xié)議中設(shè)定了端口號(hào),用來(lái)區(qū)分主機(jī)上的不同通信進(jìn)程。例如,根據(jù)IP地址找到目的主機(jī)后,IP包需要上傳到TCP層進(jìn)行處理,TCP可以根據(jù)端口號(hào)來(lái)區(qū)分出當(dāng)前通信的是網(wǎng)頁(yè)瀏覽器還是QQ應(yīng)用程序,這樣就實(shí)現(xiàn)了進(jìn)程間通信。
對(duì)于TCP協(xié)議,要了解它的三次握手和四次揮手。
三次握手過(guò)程如下:
①客戶端發(fā)送連接請(qǐng)求報(bào)文。
②服務(wù)器端接收連接請(qǐng)求后,回復(fù)ACK報(bào)文。
③客戶端接收到ACK報(bào)文后,也向服務(wù)器端發(fā)送ACK報(bào)文。
這樣TCP連接就建立了。
TCP連接的拆除需要發(fā)送四個(gè)包,故稱為四次揮手。
四次揮手過(guò)程如下:
①客戶端發(fā)送一個(gè)FIN,用來(lái)關(guān)閉客戶端到服務(wù)器端的數(shù)據(jù)傳送。
②服務(wù)器端收到這個(gè)FIN,它發(fā)回一個(gè)ACK,確認(rèn)序號(hào)為收到的序號(hào)加1。與SYN一樣,一個(gè)FIN將占用一個(gè)序號(hào)。
③服務(wù)器端關(guān)閉與客戶端的連接,發(fā)送一個(gè)FIN給客戶端。
④客戶端發(fā)回ACK報(bào)文確認(rèn),并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1。
運(yùn)輸層協(xié)議除了TCP外,還有UDP。UDP適用于對(duì)效率要求相對(duì)較高而對(duì)準(zhǔn)確性要求相對(duì)較低的場(chǎng)合,例如,視頻在線點(diǎn)播、網(wǎng)絡(luò)語(yǔ)音通話等。
了解了TCP/IP協(xié)議的基本概念后,就可以開(kāi)始進(jìn)行網(wǎng)絡(luò)編程了。
更多內(nèi)容
>>本文地址:http://www.yiyunku.cn/zhuanye/2021/69824.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學(xué)歷
3 您更想做哪個(gè)方向的工作?
07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)07月15日Java
咨詢/試聽(tīng)07月15日Python+人工智能
咨詢/試聽(tīng)07月15日Web前端
咨詢/試聽(tīng)07月15日UI設(shè)計(jì)
咨詢/試聽(tīng)07月15日大數(shù)據(jù)
咨詢/試聽(tīng)