雖然大學(xué)的時(shí)候?qū)W了有關(guān)計(jì)算機(jī)網(wǎng)絡(luò)的課程,可是不爭(zhēng)氣啊都還給老師了 ????,依稀記得當(dāng)年這門課還考了九十幾分的好成績(jī),現(xiàn)在再考估計(jì)最多也就十分。。。如果讓老師知道不知道會(huì)不會(huì)打我,哈哈哈。最近看了《圖解HTTP》的一部分,感覺(jué)寫的挺不錯(cuò)的,重拾了一些記憶。為了不再還回去,先寫點(diǎn)兒總結(jié)吧。
1.對(duì)TCP/IP的理解
計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備之間相互通信,兩者就需要基于某些相同的方法。比如,如何找到通信的目標(biāo),由哪一邊先發(fā)起通信,使用什么語(yǔ)言進(jìn)行通信,怎么表明通信結(jié)束了等類似的規(guī)則都需要雙方統(tǒng)一。我們一般把類似這種規(guī)則稱之為協(xié)議。TCP/IP協(xié)議是一組不同層次上的多個(gè)協(xié)議的組合,通常被認(rèn)為是一個(gè)四層協(xié)議系統(tǒng),與OSI的七層模型相對(duì)應(yīng)。
2.TCP/IP的分層管理
TCP/IP按層次共分為四層: 應(yīng)用層,傳輸層,網(wǎng)絡(luò)層,數(shù)據(jù)鏈路層。
各個(gè)層的作用分別如下:
-
應(yīng)用層(應(yīng)用層決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng))
TCP/IP協(xié)議族中有很多通用的應(yīng)用服務(wù),比如文件傳輸協(xié)議(FTP),比如域名解析協(xié)議(DNS)以及超文本傳輸協(xié)議(http協(xié)議)等等。 -
傳輸層
傳輸層主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。在TCP/IP協(xié)議中,有兩個(gè)性質(zhì)不同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報(bào)協(xié)議)
TCP協(xié)議提供可靠的字節(jié)流服務(wù)。三次握手策略能夠確認(rèn)數(shù)據(jù)最終是否到達(dá)對(duì)方 。 -
網(wǎng)絡(luò)層
網(wǎng)絡(luò)層包括IP協(xié)議(網(wǎng)際協(xié)議)。IP協(xié)議的作用是把數(shù)據(jù)包傳給對(duì)方。而為了保證數(shù)據(jù)確實(shí)到了對(duì)方則要滿足各種條件,其中最重要的兩個(gè)就是ip地址和mac地址。ip之間的通信依賴于MAC地址。此層處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包,并規(guī)定了傳輸路線(利用ARP協(xié)議進(jìn)行路由選擇)。 -
鏈路層
鏈路層也被稱為網(wǎng)絡(luò)接口層或者數(shù)據(jù)鏈路層。通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)。ARP(地址解析協(xié)議)和RARP(逆地址解析協(xié)議)是某些網(wǎng)絡(luò)接口(如以太網(wǎng)和令牌環(huán)網(wǎng))使用的特殊協(xié)議,用來(lái)轉(zhuǎn)換IP層和網(wǎng)絡(luò)接口層使用的地址
3.TCP/IP通信傳輸流實(shí)例理解
拿我們天天都用到了例子進(jìn)行說(shuō)明,比如我們想打開某個(gè)網(wǎng)頁(yè)。
我們?cè)趗rl上輸入鏈接然后enter發(fā)出請(qǐng)求,這時(shí)瀏覽器首先做的事情就是解析這個(gè)域名找到對(duì)應(yīng)的ip地址,一般來(lái)說(shuō)會(huì)先查看瀏覽器緩存,系統(tǒng)緩存及本地的hosts文件,如果沒(méi)有的話會(huì)發(fā)送一個(gè)DNS請(qǐng)求(此處省略迭代過(guò)程),拿到域名對(duì)應(yīng)的ip地址后緩存起來(lái)供以后方便使用。拿到ip之后就發(fā)起http請(qǐng)求,進(jìn)行tcp三次握手,連接建立后傳輸層會(huì)把從應(yīng)用層接收到的http請(qǐng)求報(bào)文進(jìn)行分割,并在各個(gè)報(bào)文上打上標(biāo)記序號(hào)和端口號(hào),然后再給網(wǎng)絡(luò)層。到了網(wǎng)絡(luò)層后,增加作為通信目的地的MAC地址后給到鏈路層。到此,請(qǐng)求就真正發(fā)送出去了。
服務(wù)器在鏈路層接收到數(shù)據(jù)后,會(huì)按順序往上層發(fā)送,一直到應(yīng)用層。大部分網(wǎng)站可能會(huì)將我們的請(qǐng)求請(qǐng)求到他們的反向代理服務(wù)器中,反向代理服務(wù)器再請(qǐng)求應(yīng)用服務(wù)器,然后將結(jié)果返回給客戶端,客戶端頁(yè)面渲染完畢,整個(gè)流程結(jié)束。