第一章 計(jì)算機(jī)網(wǎng)絡(luò)和因特網(wǎng)
這一章簡述了計(jì)算機(jī)網(wǎng)絡(luò)的一些概念和基礎(chǔ)知識鸥昏,比如說什么是協(xié)議、OSI(Open System Interconnection 開放式系統(tǒng)互聯(lián))參考模型等贸营∮汲ⅲ看完這一章后對計(jì)算機(jī)網(wǎng)絡(luò)有一個大體的了解武氓,對之后的深入學(xué)習(xí)有所幫助倍阐。
因特網(wǎng)
因特網(wǎng)具體構(gòu)成
公共因特網(wǎng):特定的計(jì)算機(jī)網(wǎng)絡(luò)檐晕。因特網(wǎng)是一個世界范圍的計(jì)算機(jī)網(wǎng)絡(luò)暑诸,它包含了許多設(shè)備,如傳統(tǒng)的桌面PC辟灰、Linux工作站的服務(wù)器个榕,今天有許多“新物品“加入,如智能手機(jī)芥喇、平板電腦西采、電視等。所有的這些設(shè)備都被稱為主機(jī)(host)
或端系統(tǒng)(end system)
继控。
端系統(tǒng)通過通信鏈路(communication link)
和分組交換機(jī)(packet switch)
連接苛让,鏈路的傳輸速率以比特/秒(bit/s)度量,當(dāng)一臺端系統(tǒng)要向另一臺端系統(tǒng)發(fā)送數(shù)據(jù)時湿诊,發(fā)送端系統(tǒng)將數(shù)據(jù)分段
狱杰,并為每段加上首部字節(jié)
,由此形成的信息包用計(jì)算機(jī)網(wǎng)絡(luò)的術(shù)語來說稱為分組(packet)
厅须。
交換機(jī):兩種最著名的類型是路由器(router)
和鏈路層交換機(jī)(link-layer switch)
仿畸。它們朝著最終目的地轉(zhuǎn)發(fā)分組。
從發(fā)送端系統(tǒng)到接受端系統(tǒng)朗和,一個分組所經(jīng)歷的一系列通信鏈路和分組交互機(jī)稱為通過該網(wǎng)絡(luò)的路徑(route或path)
错沽。
端系統(tǒng)通過因特爾服務(wù)提供商(Internet Service Provider, ISP)
接入因特網(wǎng)。比如本地電纜或電話公司那樣的住宅區(qū)ISP眶拉、公司ISP等千埃,以及為智能手機(jī)和其他設(shè)備提供移動接入的蜂窩數(shù)據(jù)ISP。每個ISP自身就是一個由多臺分組交換機(jī)和多段通信鏈路組成的網(wǎng)絡(luò)忆植。ISP運(yùn)行著IP協(xié)議放可,遵從一定的命名和地址規(guī)則。
端系統(tǒng)朝刊、分組交換機(jī)和其他因特網(wǎng)不見都要運(yùn)行一些列協(xié)議(protocol)
耀里。TCP(Transmission Control Protocol, 傳輸控制協(xié)議
)和IP(Internet Protocol, 網(wǎng)際協(xié)議)
是因特網(wǎng)中兩個最為重要的協(xié)議。
什么是協(xié)議
《計(jì)算機(jī)網(wǎng)絡(luò) 自頂向下方法》P5 用人類活動進(jìn)行類比拾氓,清晰明確冯挎。
協(xié)議定義了在兩個或多個通信實(shí)體之間交換的報(bào)文的格式和順序,以及報(bào)文發(fā)送和/或接受一條豹紋或其他時間所采取的動作咙鞍。
網(wǎng)絡(luò)邊緣
通常把與因特網(wǎng)相連的計(jì)算機(jī)和其他設(shè)備稱為端系統(tǒng)房官。因?yàn)樗鼈兾挥谝蛱鼐W(wǎng)的邊緣趾徽,故而被稱為端系統(tǒng)。包括桌面計(jì)算機(jī)翰守、服務(wù)器和移動計(jì)算機(jī)附较。
端系統(tǒng)也成為主機(jī)(host)
,主機(jī)又被進(jìn)一步分為兩類:客戶(client)
和服務(wù)器(server)
潦俺。Web頁面和視頻的服務(wù)都屬于大型數(shù)據(jù)中心(data center)
。
接入網(wǎng)
接入網(wǎng):指將端系統(tǒng)物理連接到其邊緣路由器(edge router)
的網(wǎng)絡(luò)徐勃。邊緣路由器是端系統(tǒng)到任何其他遠(yuǎn)程端系統(tǒng)的路徑上的第一臺路由器事示。
寬帶住宅接入有兩種最流行的類型:數(shù)字用戶線(Digital Subscriber Line, DSL)
和電纜。DSL利用電話公司現(xiàn)有的本地電話基礎(chǔ)設(shè)施僻肖,而電纜因特網(wǎng)接入(cable Internet access)
利用了有線電視公司現(xiàn)有的有線電視基礎(chǔ)設(shè)施肖爵。
新興技術(shù):光纖到戶。
企業(yè)(和家庭)接入:以太網(wǎng)和WiFi
廣域無線接入:3G和LTE
物理媒體:《計(jì)算機(jī)網(wǎng)絡(luò) 自上而下方法》P13 - P15
網(wǎng)絡(luò)核心
分組交換
在各種網(wǎng)絡(luò)應(yīng)用中臀脏,端系統(tǒng)彼此交換報(bào)文(message)
劝堪。為了從源端系統(tǒng)向目的端系統(tǒng)發(fā)送報(bào)文,源將長報(bào)文劃分為較小的數(shù)據(jù)塊揉稚,稱之為分組(packet)
秒啦。每個分組都通過通信鏈路和分組交換機(jī)以等于該鏈路最大傳輸速率
的速度傳輸通過通信鏈路。如果某源端系統(tǒng)或分組交換機(jī)經(jīng)過一條鏈路發(fā)送一個L比特的分組搀玖,鏈路的傳輸速率為R比特/秒余境,則傳輸該分組的時間為L/R秒。
存儲轉(zhuǎn)發(fā)傳輸
存儲轉(zhuǎn)發(fā)傳輸是指在交換機(jī)能夠開始向輸出鏈路傳輸該分組的第一個比特之前灌诅,必須接受到整個分組芳来。路由器接受到分組的一部分時,緩存分組的比特猜拾,當(dāng)路由器接受完了該分組的所有比特后即舌,才能開始轉(zhuǎn)發(fā)該分組。
在時刻L/R挎袜,路由器開始轉(zhuǎn)發(fā)第一個分組顽聂。而在時刻L/R源也開始發(fā)送第二個番組,因?yàn)樗呀?jīng)完成了第一個分組的完整發(fā)送盯仪。因此芜飘,在時刻2L/R,目的地已經(jīng)接收到第一個分組并且路由器已經(jīng)收到第二個分組磨总。
通過由N條速率均為R的鏈路組成的路徑嗦明,端到端時延是:d = N * L/R
排隊(duì)時延和分組丟失
分組交換機(jī)具有一個輸出緩存(output buffer, 也稱為輸出隊(duì)列(output queue))
,它用于儲存路由器準(zhǔn)備發(fā)往那條鏈路的分組蚪燕。如果到達(dá)的分組需要傳輸?shù)侥硹l鏈路娶牌,但發(fā)現(xiàn)該鏈路正忙于傳輸其他分組奔浅,該到達(dá)分組必須在輸出緩存中等待。除了存儲轉(zhuǎn)發(fā)時延意外诗良,分組還要承受輸出緩存的排隊(duì)時延(queuing delay)
汹桦。
一個到達(dá)的分組可能發(fā)現(xiàn)該緩存已被其他等待傳輸?shù)姆纸M完全充滿了,將出現(xiàn)分組丟失(丟包)(packet loss)
鉴裹,到達(dá)的分組或已經(jīng)排隊(duì)的分組之一將被丟棄舞骆。
轉(zhuǎn)發(fā)表和路由選擇協(xié)議
在因特網(wǎng)中,每個端系統(tǒng)具有一個稱為IP地址的地址径荔。當(dāng)源主機(jī)要向目的端系統(tǒng)發(fā)送一個分組時督禽,源在該分組的首部包含了目的地的IP地址。每臺路由器具有一個轉(zhuǎn)發(fā)表(forwarding table)
总处,用于將目的地址映射稱為輸出鏈路狈惫。
因特網(wǎng)具有一些特殊的路由選擇協(xié)議(routing protocol)
,用于自動地設(shè)置這些轉(zhuǎn)發(fā)表鹦马。
電路交換
通過網(wǎng)絡(luò)鏈路和交換機(jī)移動數(shù)據(jù)有兩種基本方法:電路交換(circuit switching)
和分組交換(packet switching)
胧谈。
電路交換:以傳統(tǒng)的電話網(wǎng)絡(luò)為例子,在發(fā)送方能夠發(fā)送信息之前荸频,該網(wǎng)絡(luò)必須在發(fā)送方和接收方之間建立一條連接菱肖。這是一個名副其實(shí)
的連接,因?yàn)榇藭r沿著發(fā)送方和接收方之間路徑上的交換機(jī)都將為該鏈接維護(hù)連接狀態(tài)旭从。用電話的術(shù)語來說蔑滓,該連接被稱為一條電路(circuit)
。
電路交換網(wǎng)絡(luò)在兩臺主機(jī)之間創(chuàng)建一條專用的端到端連接(end-to-end connection)
遇绞。
兩個分組使用同一條鏈路將會出現(xiàn)阻塞情況键袱,較晚的分組進(jìn)入緩存,產(chǎn)生時延摹闽。
電路交換網(wǎng)絡(luò)中的復(fù)用
頻分復(fù)用(FDM)
或時分復(fù)用(TDM)
頻段寬度稱為帶寬(band-width)
蹄咖。
這部分內(nèi)容在《計(jì)算機(jī)網(wǎng)絡(luò) 自頂向下方法》P20,講得很詳細(xì)
分組交換與電路交換的對比
分組交換的性能優(yōu)于電路交換:1.它提供了比電路交換更好的帶寬共享付鹿;2.它比電路交換更簡單澜汤、更有效,實(shí)現(xiàn)成本更低舵匾。3.分組交換按需分配鏈路使用俊抵,鏈路傳輸能力將在所有需要在鏈路上傳輸分組的用戶之間逐分組地被共享。
網(wǎng)絡(luò)的網(wǎng)絡(luò)
網(wǎng)絡(luò)結(jié)構(gòu)1:單一的全球傳輸ISP互聯(lián)所有接入ISP坐梯。接入ISP被認(rèn)為是客戶(customer)
徽诲,全球傳輸ISP被認(rèn)為是提供商(provider)
。
網(wǎng)絡(luò)結(jié)構(gòu)2:兩層等級結(jié)構(gòu),全球傳輸提供商位于頂層谎替,而接入ISP位于底層偷溺。在任何給定的區(qū)域,可能有一個區(qū)域ISP(regional ISP)
钱贯,每個區(qū)域ISP與第一層ISP(tier-1 ISP)
連接挫掏。第一層ISP類似于我們假象的全球傳輸ISP。
另外還有多個競爭的第一層ISP秩命。較小的區(qū)域ISP與較大的區(qū)域ISP相連尉共,還有省級ISP與國家級ISP,因此又有了網(wǎng)絡(luò)結(jié)構(gòu)3弃锐。
網(wǎng)絡(luò)結(jié)構(gòu)3:增加了存在點(diǎn)(Point of Presence, PoP)
袄友、多宿
、對等
和因特網(wǎng)交換點(diǎn)
拿愧。PoP存在于等級結(jié)構(gòu)的所有層次,但底層(接入ISP)等級除外碌尔。任何ISP(除了第一層ISP)可以選擇多宿(multi-home)
浇辜,既可以與兩個區(qū)域ISP多宿,也可以與一個第一層ISP多宿唾戚。當(dāng)一個ISP多宿時柳洋,即使它的提供商之一出現(xiàn)故障,他仍然能夠繼續(xù)發(fā)送和接收分組叹坦。
位于相同等級結(jié)構(gòu)層次的鄰近一對ISP能夠對等(peer)
熊镣,能夠直接將它們的網(wǎng)絡(luò)連到一起,使它們之間的所有流量經(jīng)直接連接而不是通過上游的中間ISP傳輸募书。
第三方公司可以創(chuàng)建一個因特網(wǎng)交換點(diǎn)(Internet Exchange Point, IXP)
绪囱。IXP是一個匯合點(diǎn),多個ISP能夠在這里一起對等莹捡。
網(wǎng)絡(luò)結(jié)構(gòu)4:由接入ISP鬼吵、區(qū)域ISP、第一層ISP篮赢、PoP齿椅、多宿、對等和IXP組成的生態(tài)系統(tǒng)启泣。
網(wǎng)絡(luò)結(jié)構(gòu)5:描述了現(xiàn)在的因特網(wǎng)涣脚,通過在網(wǎng)絡(luò)結(jié)構(gòu)4頂部增加內(nèi)容提供商網(wǎng)絡(luò)(content provider network)
構(gòu)建而成。
分組交換網(wǎng)中的時延寥茫、丟包和吞吐量(重點(diǎn))
這一節(jié)推薦從《計(jì)算機(jī)網(wǎng)絡(luò) 自頂向下方法》P24也開始看
吞吐量
:每秒能夠傳送的數(shù)據(jù)量
分組交換網(wǎng)中的時延概述
分組從主機(jī)(源)出發(fā)遣蚀,經(jīng)過一系列路由器傳輸,到達(dá)另一臺主機(jī)(目的地)。當(dāng)分組從一個節(jié)點(diǎn)(主機(jī)或路由器)沿著這條路徑到后繼節(jié)點(diǎn)妙同,該分組在沿途的每個節(jié)點(diǎn)經(jīng)受了幾種不同類型的時延射富。最重要的是節(jié)點(diǎn)處理時延(nodal processing delay)
、排隊(duì)時延(queuing delay)
粥帚、傳輸時延(transmission delay)
和傳播時延(propagation delay)
胰耗,這些時延總體累加起來是節(jié)點(diǎn)總時延(total nodal delay)
。
時延的類型
1.處理時延:檢查分組首部和決定該分組導(dǎo)向何處所需要的時間芒涡、檢查比特級別的差錯所需要的時間柴灯。
2.排隊(duì)時延:在隊(duì)列中,該分組在鏈路上等待傳輸時费尽,它經(jīng)受排隊(duì)時延赠群。
3.傳輸時延:假定分組已先到先服務(wù)方式傳輸,僅當(dāng)所有已經(jīng)到達(dá)的分組被傳輸后旱幼,才能傳輸剛到達(dá)的分組查描。用L比特表示該分組的長度,用R bps(b/s)表示從路由器A到路由器B的鏈路傳輸速率柏卤。傳輸時延是L/R冬三。這是將所有分組的比特推向鏈路所需要的時間凹耙。
4.傳播時延:一旦一個比特被推向鏈路被推向鏈路氮昧,該比特需要向路由器B傳播哮缺。從該鏈路的起點(diǎn)到路由器B傳播所需要的時間是傳播時延首启。
節(jié)點(diǎn)總時延 = 處理時延 + 排隊(duì)時延 + 傳輸時延 + 傳播時延
排隊(duì)時延和丟包
排隊(duì)時延很大程度取決于流量到達(dá)該隊(duì)列的速率拌屏、鏈路的傳輸速率和到達(dá)流量的性質(zhì)肋层,即流量是周期性到達(dá)還是以突發(fā)形式到達(dá)塘匣。
令a
表示分組到達(dá)隊(duì)列的平均速率(分組/s, pkt/s)蛉鹿,R
是傳輸速率(bps/s)齐媒,假定所有分組都是由L
比特組成蒲每,則比特到達(dá)隊(duì)列的平均速率是La
bps。假定該隊(duì)列能容納無限數(shù)量的比特喻括。比率La/R
被稱為流量強(qiáng)度(traffic intensity)
啃勉。如果La/R > 1,則比特到達(dá)隊(duì)列的平均速率超過從該隊(duì)列傳輸出去的速率双妨,在這種情況下該隊(duì)列趨向于無限增加淮阐,排隊(duì)時延將趨向于無窮大。
設(shè)計(jì)系統(tǒng)時流量強(qiáng)度不能大于1
La/R <= 1時刁品,到達(dá)流量的性質(zhì)影響排隊(duì)時延泣特。如果分組時周期性到達(dá),即每L/R秒到達(dá)一個分組挑随,則沒有排隊(duì)時延状您。如果分組以突發(fā)形式到達(dá),則可能會有很大的平均排隊(duì)時延。
丟包
上述討論假設(shè)隊(duì)列能容納無窮多分組膏孟,但是事實(shí)上排隊(duì)容量是有限的眯分,隨著流量強(qiáng)度接近1,排隊(duì)時延并不真正趨向無窮大柒桑。相反弊决,到達(dá)的分組將發(fā)現(xiàn)一個滿的隊(duì)列。由于沒有地方存儲這個分組魁淳,路由器將丟棄(drop)
該分組飘诗,即該分組將會丟失(lost)
。
端到端時延
端到端時延 = N(傳播時延 + 傳輸時延 + 處理時延)
計(jì)算機(jī)網(wǎng)絡(luò)中的吞吐量
《計(jì)算機(jī)網(wǎng)絡(luò) 自頂向下方法》P30 例子講得很細(xì)致
協(xié)議層次及其服務(wù)模型(重要)
分層的體系結(jié)構(gòu)
利用分層的體系結(jié)構(gòu)界逛,我們可以討論一個大而復(fù)雜系統(tǒng)的定義良好的特定部分昆稿。
協(xié)議分層
網(wǎng)絡(luò)設(shè)計(jì)者以分層(layer)
的方式組織協(xié)議以及實(shí)現(xiàn)這些協(xié)議的網(wǎng)絡(luò)硬件和軟件。各層的所有協(xié)議被稱為協(xié)議棧(protocol stack)
息拜。因特網(wǎng)的協(xié)議棧有五個層次組成:物理層溉潭、鏈路層、網(wǎng)絡(luò)層少欺、運(yùn)輸層和應(yīng)用層喳瓣。采用自頂向下方法我們首先處理應(yīng)用層,然后向下進(jìn)行處理狈茉。
1.應(yīng)用層
應(yīng)用層時網(wǎng)絡(luò)應(yīng)用程序及它們的應(yīng)用層協(xié)議存留的地方夫椭。因特網(wǎng)的應(yīng)用層包括許多協(xié)議掸掸,例如HTTP(提供了Web文檔的請求和傳送)
氯庆、SMTP(提供了電子郵件報(bào)文的傳輸)
和FTP(提供兩個端系統(tǒng)之間的文件傳送)
。
應(yīng)用層協(xié)議分布在多個端系統(tǒng)上扰付,而一個端系統(tǒng)中的應(yīng)用程序使用協(xié)議與另一個端系統(tǒng)中的應(yīng)用程序交換信息分組堤撵,稱為報(bào)文(message)
。
2.運(yùn)輸層
因特網(wǎng)的運(yùn)輸層在應(yīng)用程序端點(diǎn)之間傳送應(yīng)用層報(bào)文羽莺。兩種傳輸協(xié)議:TCP
和UDP
实昨。TCP提供面向連接服務(wù),確保傳遞和流量控制盐固,它將長報(bào)文劃分為短報(bào)文荒给,并提供擁塞控制機(jī)制。UDP提供無連接服務(wù)刁卜,沒有可靠性志电、流量控制、擁塞控制蛔趴。運(yùn)輸層的分組稱為報(bào)文段(segment)
挑辆。
3.網(wǎng)絡(luò)層
網(wǎng)絡(luò)層負(fù)責(zé)將稱為數(shù)據(jù)報(bào)(datagram)
的網(wǎng)絡(luò)層分組從一臺主機(jī)移動到另一臺主機(jī)。網(wǎng)絡(luò)層包括著名的網(wǎng)際協(xié)議IP
。所有具有網(wǎng)絡(luò)層的因特網(wǎng)組件必須運(yùn)行IP鱼蝉。因特網(wǎng)還具有許多路由選擇協(xié)議洒嗤。通常把網(wǎng)絡(luò)層簡單地稱為IP層。
4.鏈路層
為了將分組從一個節(jié)點(diǎn)(主機(jī)或路由器)移動到路徑上的下一個節(jié)點(diǎn)魁亦,網(wǎng)絡(luò)層必須依靠該鏈路層的服務(wù)渔隶。由鏈路層提供的服務(wù)取決于應(yīng)用于該鏈路的特定鏈路層協(xié)議。鏈路層的例子包括以太網(wǎng)吉挣、WiFi和電纜接入網(wǎng)的DOCSIS協(xié)議派撕。我們把鏈路層分組稱為幀(frame)
。
5.物理層
物理層的任務(wù)將鏈路層分組(幀)中的一個個比特從一個節(jié)點(diǎn)移動到下一個節(jié)點(diǎn)睬魂。在這層中的協(xié)議仍然是鏈路鏈路相關(guān)的终吼,并且進(jìn)一步于該鏈路(例如,雙絞銅線氯哮、單模光纖)的實(shí)際傳輸媒體有關(guān)际跪。
OSI模型
七層模型:應(yīng)用層、表示層喉钢、會話層姆打、運(yùn)輸層、網(wǎng)絡(luò)層肠虽、鏈路層幔戏、物理層。
封裝
封裝(encapsulation)
:在發(fā)送主機(jī)端税课,一個應(yīng)用層報(bào)文(application-layer message)
被傳送給運(yùn)輸層闲延,運(yùn)輸層收取到報(bào)文并附上運(yùn)輸層首部信息,該首部將被接受端的運(yùn)輸層使用韩玩。應(yīng)用層報(bào)文和運(yùn)輸層首部信息一起構(gòu)成運(yùn)輸層報(bào)文端(transport-layer segment)
垒玲。運(yùn)輸層報(bào)文因此封裝了應(yīng)用層報(bào)文。運(yùn)輸層向網(wǎng)絡(luò)層傳遞該報(bào)文段找颓,網(wǎng)絡(luò)層增加了如源和目的端系統(tǒng)地址等網(wǎng)絡(luò)層首部信息合愈,生成了網(wǎng)絡(luò)層數(shù)據(jù)報(bào)(network-layer datagram)
。該數(shù)據(jù)報(bào)接下來被傳遞給鏈路層击狮,鏈路層增加它自己的鏈路層首部信息并聲稱鏈路層幀(link-layer frame)
佛析。我們看到在每一層,一個分組具有兩種類型字段:首部字段和有效載荷字段(payload field)
彪蓬。有效載荷字段通常是來自上一層的分組寸莫。
面對攻擊的網(wǎng)絡(luò)
病毒、蠕蟲寞焙、僵尸網(wǎng)絡(luò)等
弱點(diǎn)攻擊储狭、帶寬洪泛互婿、連接洪泛
嗅探分組、IP哄騙