學(xué)習(xí)計算機(jī)網(wǎng)絡(luò)的核心就是學(xué)習(xí)網(wǎng)絡(luò)協(xié)議伯襟。
1囊骤,什么是網(wǎng)絡(luò)協(xié)議呢晃择?
它是為了計算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)交換而建立的一系列規(guī)則,標(biāo)準(zhǔn)也物,即通信規(guī)則宫屠。打個比方,就是相同地區(qū)的人為了方便交流會使用同一種語言交流滑蚯,所以在我國有很多的方言浪蹂,這些方言就是為了小范圍內(nèi)人們交流方便而產(chǎn)生的抵栈。而如果不同地區(qū)的人需要交流(因?yàn)檎f方言,雙方都聽不懂)坤次,雙方必須使用同一種語言才可以古劲,大家都會普通話,所以用普通話交流缰猴。如果我們想要與國外友人交流产艾,又得換一種語言——英語,大家才能暢通無阻的交流滑绒。這里的語言闷堡,就是為了人們交換信息而產(chǎn)生的。網(wǎng)絡(luò)協(xié)議和語言的作用一樣疑故,不同的計算機(jī)需要交流杠览,必須使用同一種協(xié)議。語言有很多種纵势,協(xié)議也有很多種踱阿,只要你們使用的協(xié)議一樣就可以交流。計算機(jī)網(wǎng)絡(luò)中最常用的協(xié)議是TCP/IP協(xié)議吨悍。如下圖:
2,層次劃分
為了使不同計算機(jī)廠家生產(chǎn)的計算機(jī)能夠通信蹋嵌,建立更大的計算機(jī)網(wǎng)絡(luò)育瓜,國際標(biāo)準(zhǔn)化組織提出了網(wǎng)絡(luò)七層模型(OSI)。因?yàn)橐郧霸岳茫煌嬎銠C(jī)廠家都有自己的網(wǎng)絡(luò)體系結(jié)構(gòu)躏仇,只有出自同一個廠家的計算機(jī)才能進(jìn)行通信,但是出自不同廠家的計算機(jī)之間也迫切需要交流通信腺办,所以就產(chǎn)生了網(wǎng)絡(luò)七層模型焰手。網(wǎng)絡(luò)七層模型是適用于所有網(wǎng)絡(luò)的模型。除了這個模型外怀喉,還有TCP/IP的四層和五層模型书妻,它對七層模型進(jìn)行了簡化。她們之間的關(guān)系如下圖:
3躬拢,網(wǎng)絡(luò)分層
不同的分層中都有對應(yīng)的網(wǎng)絡(luò)協(xié)議躲履。
TCP/I五層協(xié)議從下往上分別是:物理層,數(shù)據(jù)鏈路層聊闯,網(wǎng)絡(luò)層工猜,傳輸層,應(yīng)用層菱蔬。下兩層偏底層篷帅,不需要人工干預(yù)史侣,不需要關(guān)心太多底層通信協(xié)議,只需要了解通信原理即可魏身。而從第三層網(wǎng)絡(luò)層開始惊橱,需要我們?nèi)斯づ渲貌拍苷9ぷ鳌?/p>
1)物理層
作用:為數(shù)據(jù)傳輸提供了物質(zhì)媒介。
2)數(shù)據(jù)鏈路層
作用:在不可靠的物理介質(zhì)上提供了可靠的數(shù)據(jù)傳輸叠骑。
重要設(shè)備:交換機(jī)李皇,交換機(jī)靠mac來尋址的。
3)網(wǎng)絡(luò)層
作用:實(shí)現(xiàn)了主機(jī)與主機(jī)之間的數(shù)據(jù)傳輸宙枷。
協(xié)議:IP協(xié)議
任何生產(chǎn)廠家的計算機(jī)掉房,只要遵循IP協(xié)議,就可以和因特網(wǎng)互聯(lián)互通慰丛。因?yàn)椴煌瑥S家生產(chǎn)的網(wǎng)絡(luò)系統(tǒng)和設(shè)備不能互通卓囚,它們進(jìn)行傳輸?shù)臄?shù)據(jù)幀格式不同,正是IP協(xié)議將不同格式的數(shù)據(jù)幀轉(zhuǎn)換成了統(tǒng)一的IP數(shù)據(jù)包格式诅病,才使所有計算機(jī)可以互聯(lián)互通哪亿。
重要設(shè)備:路由器
4)傳輸層
作用:將數(shù)據(jù)可靠的送到相應(yīng)的端口。
協(xié)議:TCP協(xié)議贤笆,UDP協(xié)議
重要設(shè)備:網(wǎng)關(guān)
5)應(yīng)用層
4蝇棉,IP地址
每個網(wǎng)卡都有全球唯一標(biāo)識,這標(biāo)識就是mac地址芥永。但是mac地址不具有層次性篡殷,也就是不具有快速定位地址的能力。比如埋涧,你網(wǎng)購一件東西的時候板辽,地址上只寫自己的名字,而不寫省市縣等地址快遞員是無法找到地址的棘催。在計算機(jī)網(wǎng)絡(luò)中也是一樣劲弦,計算機(jī)想要和其他計算機(jī)進(jìn)行通訊,不僅需要mac地址醇坝,還需要IP地址進(jìn)行快速定位每臺計算機(jī)的具體位置邑跪。
mac地址是數(shù)據(jù)鏈路層定義的物理地址(先暫且不用管它),IP地址是網(wǎng)絡(luò)層定義的邏輯地址呼猪,為了快速定位呀袱。
IP地址是由32位的二進(jìn)制數(shù)組成,通常被分割為4個8位二進(jìn)制數(shù)(也就是4個字節(jié))郑叠,但為了方便記憶夜赵,轉(zhuǎn)換成十進(jìn)制數(shù),是4個用圓點(diǎn)來分隔的十進(jìn)制數(shù)乡革,十進(jìn)制數(shù)的范圍是0-255寇僧。
IP分為網(wǎng)絡(luò)號和主機(jī)號摊腋。網(wǎng)絡(luò)號代表計算機(jī)所在的網(wǎng)絡(luò)。
根據(jù)網(wǎng)絡(luò)號的不同嘁傀,IP分為A兴蒸,B,C類细办。A類的網(wǎng)絡(luò)號是第一個字節(jié)橙凳,以10開頭,B類的網(wǎng)絡(luò)號是前兩個字節(jié)笑撞,以110開頭岛啸,C類IP的網(wǎng)絡(luò)號是前三個字節(jié),以1110開頭茴肥。
5坚踩,子網(wǎng)掩碼
對于一個IP來說,我們是不知道它的網(wǎng)絡(luò)號和主機(jī)號是多少的瓤狐。子網(wǎng)掩碼就是為了劃分網(wǎng)絡(luò)部分和主機(jī)部分的瞬铸。
IP地址和子網(wǎng)掩碼進(jìn)行與計算,可以計算出計算機(jī)的網(wǎng)絡(luò)地址础锐。
6嗓节,TCP協(xié)議
TCP協(xié)議是面向連接的,可靠的傳輸層協(xié)議皆警,是傳輸控制協(xié)議拦宣,傳輸效率低。
在源點(diǎn)和終點(diǎn)建立虛擬連接耀怜,而不是物理連接恢着,連接成功后進(jìn)行數(shù)據(jù)傳送桐愉,數(shù)據(jù)發(fā)送完畢后财破,再斷開連接。TCP連接的每一方都是由一個IP地址和一個端口組成从诲。
三次握手:
首先左痢,客戶端與服務(wù)器均處于未連接狀態(tài),并且是客戶端主動向服務(wù)器請求 建立連接:
客戶端將報文段中的SYN=1系洛,并選擇一個seq=x俊性,(即該請求報文的序號為x)? 將這個報文發(fā)送到服務(wù)器。此時描扯,客戶端進(jìn)入同步已發(fā)送狀態(tài)(SYN-SEND).SYN報文段不能攜帶數(shù)據(jù)定页,但是要消耗掉一個序號。服務(wù)器收到請求報文后绽诚,若同意建立連接典徊,則回復(fù)報文中杭煎,SYN=1,ACK=1,并選擇一個seq = y,且報文中確認(rèn)號為x+1卒落,序號為y?? .此時服務(wù)器進(jìn)入同步已接收狀態(tài)(SYN-RCVD)
客戶端收到服務(wù)器的同步確認(rèn)后羡铲,對服務(wù)器發(fā)送確認(rèn)的確認(rèn)。將ACK=1,確認(rèn)號為y+1,而報文首部的序號為x+1儡毕,將該報文發(fā)出后也切,客戶端進(jìn)入已連接狀態(tài)(ESTABLISHED)。
服務(wù)器收到客戶端的確認(rèn)后腰湾,也進(jìn)入已連接狀態(tài)雷恃。以上即三次握手。
四次揮手:
第一次揮手:主機(jī)1向主機(jī)2檐盟,發(fā)送FIN報文段褂萧,表示關(guān)閉數(shù)據(jù)傳送,并主機(jī)1進(jìn)入FIN_WAIT_1狀態(tài)葵萎,表示沒有數(shù)據(jù)要傳輸了导犹。
第二次揮手:主機(jī)2收到FIN報文段后進(jìn)入CLOSE_WAIT狀態(tài)(被動關(guān)閉),然后發(fā)送ACK確認(rèn)羡忘,表示同意你關(guān)閉請求了谎痢,主機(jī)到主機(jī)的數(shù)據(jù)鏈路關(guān)閉,主機(jī)進(jìn)入FIN_WAIT_2狀態(tài)卷雕。
第三次揮手:主機(jī)2等待主機(jī)1發(fā)送完數(shù)據(jù)节猿,發(fā)送FIN到主機(jī)1請求關(guān)閉,主機(jī)2進(jìn)入LAST_ACK狀態(tài)漫雕。
第四次揮手:主機(jī)1收到主機(jī)2發(fā)送的FIN后滨嘱,回復(fù)ACK確認(rèn)到主機(jī)2,主機(jī)1進(jìn)入TIME_WAIT狀態(tài)浸间。主機(jī)2收到主機(jī)1的ACK后就關(guān)閉連接了太雨,狀態(tài)為CLOSED。主機(jī)1等待2MSL魁蒜,仍然沒有收到主機(jī)2的回復(fù)囊扳,說明主機(jī)2已經(jīng)正常關(guān)閉了,主機(jī)1關(guān)閉連接兜看。