圖解TCP_IP 第五版
第一章 網(wǎng)絡(luò)基礎(chǔ)知識
1沐序、OSI參考模型(7層):
2祸泪、七層通信:
- 應(yīng)用層:(寫入數(shù)據(jù))
- 表示層:是進(jìn)行“統(tǒng)一的網(wǎng)絡(luò)數(shù)據(jù)格式”與“某一臺(tái)計(jì)算機(jī)或某一款軟件特有的數(shù)據(jù)格式”之間互相轉(zhuǎn)換的分層。(格式化編碼)
- 會(huì)話層:建立何種傳輸方式档址,記錄數(shù)據(jù)傳送順序,負(fù)責(zé)決定連接時(shí)機(jī)(標(biāo)記發(fā)送順序)
- 傳輸層:保證數(shù)據(jù)傳輸?shù)目煽啃裕ù_立連接和斷開連接吞琐,可重發(fā))
- 網(wǎng)絡(luò)層:負(fù)責(zé)將數(shù)據(jù)發(fā)送至最終目標(biāo)地址,端對端(數(shù)據(jù)傳送)
- 數(shù)據(jù)鏈路層:通過傳輸介質(zhì)互連的設(shè)備之間進(jìn)行數(shù)據(jù)處理
- 物理層:將MAC地址信息的首部附加到數(shù)據(jù)上然爆,將其發(fā)送到網(wǎng)絡(luò)
3站粟、傳輸方式的分類
- 面向有連接型:ATM、幀中繼曾雕、TCP
-
面向無連接型:以太網(wǎng)奴烙、IP、UDP
面向有連接型與面向無連接型
4剖张、分組交換
分組交換
發(fā)送端計(jì)算機(jī)將數(shù)據(jù)分組發(fā)給路由器切诀,路由器接收到這組分組數(shù)據(jù)以后,緩存到自己的緩沖區(qū)搔弄,然后再轉(zhuǎn)發(fā)給目標(biāo)計(jì)算機(jī)幅虑。
5、地址
- 地址的唯一性
在同一通信網(wǎng)絡(luò)中不允許有兩個(gè)相同地址的通信主體存在- 地址的層次性
MAC尋址:地址轉(zhuǎn)發(fā)表(根據(jù)自學(xué)自動(dòng)生成)
IP尋址:路由轉(zhuǎn)發(fā)表(根據(jù)路由協(xié)議自動(dòng)生成)
MAC地址和IP地址都具有唯一性顾犹,但是只有IP地址具有層次性倒庵。MAC地址是真正負(fù)責(zé)最終通信的地址,但實(shí)際尋址中炫刷,IP地址必不可少擎宝。
6、網(wǎng)橋與路由器
- 網(wǎng)橋/2層交換機(jī):
在OSI模型的第2層——數(shù)據(jù)鏈路層面上連接兩個(gè)網(wǎng)絡(luò)設(shè)備(幀)浑玛。
地址是指MAC地址绍申、硬件地址、物理地址和適配器地址锄奢。- 路由器/3層交換機(jī):
在OSI模型的第3層——網(wǎng)絡(luò)層面上連接兩個(gè)網(wǎng)絡(luò)失晴、并對分組報(bào)文進(jìn)行轉(zhuǎn)發(fā)的設(shè)備。(IP地址)- 4-7層交換機(jī):
處理OSI模型中從傳輸層至應(yīng)用層的數(shù)據(jù)拘央。(數(shù)據(jù)轉(zhuǎn)發(fā))- 網(wǎng)關(guān):
負(fù)責(zé)將傳輸層到應(yīng)用層的數(shù)據(jù)進(jìn)行轉(zhuǎn)換和轉(zhuǎn)發(fā)的設(shè)備涂屁。(協(xié)議轉(zhuǎn)換)
第二章 TCP/IP基礎(chǔ)知識
1、TCP/IP具體含義:
2灰伟、TCP/IP與OSI參考模型
- 硬件(物理層)
- 網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層)
- 互聯(lián)網(wǎng)層(網(wǎng)絡(luò)層)
1拆又、IP:整個(gè)互聯(lián)網(wǎng)都能收到數(shù)據(jù)的協(xié)議。
2栏账、ICMP:數(shù)據(jù)發(fā)生異常時(shí)無法到達(dá)目標(biāo)地址時(shí)帖族,給發(fā)送端發(fā)送一個(gè)異常通知。
3挡爵、ARP:從IP地址中解析出物理地址發(fā)的一種協(xié)議竖般。- 傳輸層
通常同一時(shí)間運(yùn)行多個(gè)程序,識別這些應(yīng)用程序的是端口號茶鹃。a涣雕、TCP:面向有連接的傳輸層協(xié)議艰亮,至少需要7次的發(fā)包收包
b、UDP:面向無連接的傳輸層協(xié)議挣郭。
- 應(yīng)用層
3迄埃、傳輸中的數(shù)據(jù)包
一部分由協(xié)議所要用到的首部,另一部分是上層傳過來的數(shù)據(jù)兑障。
- TCP首部:源端口號侄非、目標(biāo)端口號(用以識別發(fā)送主機(jī)和接收主機(jī)上的應(yīng)用)、序號(用以發(fā)送包中哪部分是數(shù)據(jù))流译、以及校驗(yàn)和(用以判斷數(shù)據(jù)是否被損壞)
- IP首部:接收端IP地址以及發(fā)送端IP地址
-
以太網(wǎng)首部:接收端MAC地址逞怨、發(fā)送端MAC地址以及標(biāo)志以太網(wǎng)類型的以太網(wǎng)數(shù)據(jù)的協(xié)議
TCP/IP各層對郵件的收發(fā)處理
4、經(jīng)過數(shù)據(jù)鏈路的包
每個(gè)包首部包含兩個(gè)信息:一個(gè)是發(fā)送端和接收端地址福澡,另一個(gè)是上一層的協(xié)議類型
接收處理:
a骇钦、數(shù)據(jù)接收完畢后,接收端發(fā)送一個(gè)“確認(rèn)回執(zhí)”給發(fā)送端
b竞漾、數(shù)據(jù)能正確處理,接收端返回一個(gè)“處理正晨妫”的回執(zhí)給發(fā)送端业岁。
第三章 數(shù)據(jù)鏈路
1、MAC地址
MAC地址長48比特寇蚊,任何一個(gè)網(wǎng)卡的MAC地址都是唯一的笔时。
2、共享介質(zhì)型網(wǎng)絡(luò)
共享介質(zhì)型網(wǎng)絡(luò)是指多個(gè)設(shè)備共享一個(gè)通信介質(zhì)的一種網(wǎng)絡(luò)仗岸,基本上采用半雙工通信允耿。
爭用方式
爭奪獲取數(shù)據(jù)傳輸?shù)臋?quán)利。令牌傳遞方式
沿著令牌環(huán)發(fā)送一種叫做“令牌”的特殊報(bào)文扒怖,只有獲得令牌的站才能發(fā)送數(shù)據(jù)较锡。
3私爷、非共享介質(zhì)網(wǎng)絡(luò)
非共享介質(zhì)網(wǎng)絡(luò)是指網(wǎng)絡(luò)中的每個(gè)站直連交換機(jī)音比,由交換機(jī)負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)幀,多數(shù)情況下采用全雙工通信熟掂。
4俯邓、以太網(wǎng)幀格式
以太網(wǎng)前端有一個(gè)人前導(dǎo)碼骡楼,表示一個(gè)以太網(wǎng)幀的開始,也是對端網(wǎng)卡能夠確保與其同步的標(biāo)志稽鞭。前導(dǎo)碼末尾有個(gè)SFD的域鸟整,前導(dǎo)碼與SDF合起來占8個(gè)字節(jié)(1 byte = 8 bit)
以太網(wǎng)幀的前導(dǎo)碼
以太網(wǎng)幀本體前端是以太網(wǎng)首部,共占14個(gè)字節(jié)朦蕴,其中6個(gè)字節(jié)的目標(biāo)MAC地址篮条、6個(gè)字節(jié)的源MAC地址以及2個(gè)字節(jié)的上層協(xié)議類型弟头。
以太網(wǎng)幀體格式
以太網(wǎng)主要協(xié)議類型及其作用
5、數(shù)字鏈路類型
以太網(wǎng)兑燥、無線通信亮瓷、PPP(Point-to-point Protocol)、ATM(Asynchronous Transfer Mode)降瞳、POS(Packet over SDH)嘱支、FDDI(Fiber Distributed Data Interface)等。
第四章 IP協(xié)議
1挣饥、網(wǎng)際協(xié)議——IP
TCP/IP的心臟是互聯(lián)網(wǎng)層除师,主要作用是“實(shí)現(xiàn)終端節(jié)點(diǎn)之間的通信”。(點(diǎn)對點(diǎn)通信)
數(shù)據(jù)鏈路層提供直連兩個(gè)設(shè)備之間的通信功能(區(qū)間車票)扔枫;
網(wǎng)絡(luò)層的IP則負(fù)責(zé)在沒有直連的兩個(gè)網(wǎng)絡(luò)之間進(jìn)行通信傳輸(全程行程表)汛聚。
2、數(shù)字鏈路抽象化
對IP的上一層來說短荐,不論底層是以太網(wǎng)還是無線LAN亦或是PPP倚舀,都將一視同仁。不同數(shù)據(jù)鏈路的最大區(qū)別在于各自的最大傳輸單位不同忍宋。(類似郵寄包裹或行李時(shí)有各自的大小限制)
不同數(shù)據(jù)鏈路最大傳輸單位
3痕貌、IP屬于像無連接型
一是為了簡化,而是為了提速
IP提供盡力服務(wù)(Best Effort)
4糠排、IP地址的定義
IP地址(IPv地址)有32位正整數(shù)表示
IP地址的定義
5舵稠、IP地址的組成
IP地址由“網(wǎng)絡(luò)標(biāo)識(網(wǎng)絡(luò)地址)”和“主機(jī)標(biāo)識(主機(jī)地址)”兩部分組成。
- 網(wǎng)絡(luò)標(biāo)識:必須保證相互連接的每個(gè)段地址不相重復(fù)入宦,而相同段內(nèi)相連的主機(jī)必須有相同的網(wǎng)絡(luò)地址哺徊。(172. 16. 93. _)
- 主機(jī)標(biāo)識:不允許在同一個(gè)網(wǎng)段內(nèi)重復(fù)出現(xiàn)(_. _. _. 145)
6、IP地址的分類
- A類
首位以“0”開頭乾闰,1-8位是網(wǎng)絡(luò)標(biāo)識落追,后24位為主機(jī)標(biāo)識,網(wǎng)絡(luò)地址:(0.0.0.0~127.0.0.0)涯肩,一個(gè)網(wǎng)段可容納的主機(jī)地址上限為(2^24 - 2 = 16777214)
- B類
前兩位以“10”的地址淋硝,1-16位是網(wǎng)絡(luò)標(biāo)識,后16位為主機(jī)標(biāo)識宽菜,網(wǎng)絡(luò)地址:(128.0.0.1~191.255.0.0)谣膳,一個(gè)網(wǎng)段可容納的主機(jī)地址上限為(2^16 - 2 = 65534)
- C類
前三位以“110”的地址,1-24位是網(wǎng)絡(luò)標(biāo)識铅乡,后8位為主機(jī)標(biāo)識继谚,網(wǎng)絡(luò)地址:(192.168.0.0~239.255.255.0),一個(gè)網(wǎng)段可容納的主機(jī)地址上限為(2^8 - 2 = 254)
- D類
前四位以“1110”的地址阵幸,1-32位是網(wǎng)絡(luò)標(biāo)識花履,無主機(jī)標(biāo)識芽世,網(wǎng)絡(luò)地址:(224.0.0.0~239.255.255.255),常用于多播
7诡壁、廣播地址
- 本地廣播:
若網(wǎng)絡(luò)地址為192.168.0.0/24济瓢,廣播地址是192.168.0.255,該IP包會(huì)被路由器屏蔽妹卿,故不會(huì)到達(dá)這個(gè)網(wǎng)段之外的其他鏈路旺矾。
本地廣播
- 直接廣播:
若網(wǎng)絡(luò)地址為192.168.0.0/24的主機(jī)向192.168.1.255/24的目標(biāo)地址發(fā)送IP包,路由器將包轉(zhuǎn)給192.168.1.0/24夺克,這個(gè)網(wǎng)段均可收到這個(gè)包箕宙。
直接廣播
8、子網(wǎng)掩碼
- 子網(wǎng):
IP地址的網(wǎng)絡(luò)標(biāo)識和主機(jī)標(biāo)識不再受限于該地址的類別铺纽,而是由一個(gè)叫做“子網(wǎng)掩碼”的識別碼通過子網(wǎng)網(wǎng)絡(luò)地址細(xì)分出比A類柬帕、B類、C類更小粒度的網(wǎng)絡(luò)狡门∠萸蓿
將原來的A類、B類其馏、C類等分類中的主機(jī)地址部分用作子網(wǎng)地址盼铁,可以將原網(wǎng)絡(luò)分為多個(gè)物理網(wǎng)絡(luò)的一種機(jī)制。
對應(yīng)網(wǎng)絡(luò)標(biāo)識部分全為1尝偎,主機(jī)標(biāo)識部分全為0.以前26位是網(wǎng)絡(luò)地址為例:
其中網(wǎng)絡(luò)標(biāo)識占26位,故最后8位為(11000000 = 192)鹏控,主機(jī)標(biāo)識占6位致扯,廣播(2^6-1 = 63)
子網(wǎng)掩碼
子網(wǎng)掩碼推導(dǎo)圖
9、IPv6
IPv6地址的長度是原來的4倍当辐,128比特
10抖僵、IPv4首部
- 版本:4比特,版本號為4
- 首部長度:4比特缘揪,IP首部大小耍群,單位為4字節(jié),沒有可選項(xiàng)的IP包找筝,首部長度設(shè)置為5(首部長度20字節(jié))
- 區(qū)分服務(wù):8比特蹈垢,無用
- 總長度:16比特,IP首部和數(shù)據(jù)部分合起來的總字節(jié)數(shù)
- 標(biāo)識:16比特袖裕,用于分片重組
- 標(biāo)志:3比特曹抬,表示包被分片的相關(guān)信息
- 片偏移:13比特,標(biāo)識被分片的每一個(gè)分段相對于原始數(shù)據(jù)的位置
- 生存時(shí)間:8比特急鳄,指可以中轉(zhuǎn)多少個(gè)路由器 (限制通過路由器個(gè)數(shù))
- 協(xié)議:8比特谤民,IP首部的下一個(gè)首部隸屬于哪個(gè)協(xié)議
- 首部校驗(yàn)和:16比特(2字節(jié))堰酿,只校驗(yàn)數(shù)據(jù)報(bào)的首部
- 原地址:32比特,表示發(fā)送端 IP 地址
- 目標(biāo)地址:32比特张足,表示接收端 IP 地址
- 可選項(xiàng):長度可變(40字節(jié))
- 填充:填充0触创,調(diào)整為32比特整數(shù)倍
- 數(shù)據(jù)
第五章 IP協(xié)議相關(guān)技術(shù)
1、僅憑IP無法完成通信
僅憑IP遠(yuǎn)遠(yuǎn)不夠为牍,還需要眾多支持IP的相關(guān)技術(shù)才能實(shí)現(xiàn)最終通信哼绑。
2、DNS(Domain Name System)的產(chǎn)生
可以有效管理主機(jī)名(域名)和IP地址之間對應(yīng)關(guān)系的系統(tǒng)吵聪,維護(hù)組織內(nèi)部主機(jī)名和IP地址之間對應(yīng)關(guān)系的數(shù)據(jù)庫凌那。(人們訪問任何一個(gè)web站點(diǎn),都能夠直接輸入主機(jī)名進(jìn)行訪問)
3吟逝、域名的構(gòu)成
域名服務(wù)器:
每層都設(shè)有一個(gè)域名服務(wù)器帽蝶,它可以管理所在分層的域的相關(guān)信息
域名服務(wù)器- 解析器
進(jìn)行DNS查詢的主機(jī)和軟件叫做DNS解析器。一個(gè)解析器至少要注冊一個(gè)以上域名服務(wù)器的IP地址块攒,通常它至少包括組織內(nèi)部的域名服務(wù)器的IP地址励稳。
4、DNS查詢
根域名服務(wù)器注冊著根以下第一層域名服務(wù)器的IP地址囱井。
5驹尼、ARP概要
以目標(biāo)IP地址為線索,用來定位下一個(gè)應(yīng)該接收數(shù)據(jù)分包的網(wǎng)絡(luò)設(shè)備對應(yīng)的MAC地址庞呕。只適用于IPv4新翎,IPv6中使用ICMPv6。
6住练、ARP的工作機(jī)制
通過廣播發(fā)送一個(gè)ARP請求包地啰,請求包中目標(biāo)IP地址和自己IP地址一致,那么這個(gè)節(jié)點(diǎn)就將自己的MAC地址塞入ARP響應(yīng)包返回給主機(jī)A讲逛。
在以太網(wǎng)發(fā)送IP包時(shí)亏吝,“下次經(jīng)由哪個(gè)路由器發(fā)送數(shù)據(jù)報(bào)”很重要,這里的“下一個(gè)路由器”就是相應(yīng)的MAC地址盏混,ARP協(xié)議是從IP地址定位MAC地址的一種協(xié)議蔚鸥。
7、RARP
將ARP反過來许赃,從MAC地址定位IP地址的一種協(xié)議止喷,例如將打印機(jī)服務(wù)器等小型嵌入式設(shè)備接入到網(wǎng)絡(luò)時(shí)會(huì)使用到。
8混聊、ICMP
ICMP主要功能包括:確定IP包是否成功送達(dá)目標(biāo)地址启盛,通知在發(fā)送過程當(dāng)中IP包被廢棄的具體原因,改善網(wǎng)絡(luò)設(shè)置等。
ICMP無法到達(dá)的消息
ICMP消息類型
主要ICMP消息:
- 目標(biāo)不可達(dá)消息(類型3)
- 重定向消息(類型5)
- 超時(shí)消息(類型11)
- 回送消息(類型0僵闯、8)(ping命令)
其他ICMP消息
- 原點(diǎn)抑制消息(類型4)
- 路由探索消息(類型9卧抗、10)
- 地址掩碼消息(類型17、18)
9鳖粟、ICMPv6
在IPv4中社裆,ICMP僅作為一個(gè)輔助作用,沒有ICMP仍可實(shí)現(xiàn)通信向图;在IPv6中泳秀,如果沒有ICMPv6,就無法正常通信。
- 錯(cuò)誤信息(0~127)
- 信息消息(128~255)
10榄攀、DHCP實(shí)現(xiàn)即插即用
DHCP(Dynamic Host Configuration Protocol):計(jì)算機(jī)連接上網(wǎng)絡(luò)嗜傅,就可以進(jìn)行TCP/IP通信强戴,實(shí)現(xiàn)自動(dòng)設(shè)置IP地址季俩、統(tǒng)一管理IP地址分配。
11翎卓、NAT
NAT(Network Address Translator)是用于在本地網(wǎng)絡(luò)中使用私有地址贞瞒,在連接互聯(lián)網(wǎng)時(shí)轉(zhuǎn)而使用全局的IP地址的技術(shù)偶房,除轉(zhuǎn)換IP地址外,還出現(xiàn)可以轉(zhuǎn)換TCP军浆、UDP端口號的NAPT棕洋。
注:只有目標(biāo)地址、原地址乒融、目標(biāo)端口掰盘、源端口以及協(xié)議類型(TCP和UDP)五項(xiàng)內(nèi)容都一致時(shí)才被認(rèn)為是同一個(gè)通信連接
12、IP隧道
第六章 TCP與UDP
1赞季、TCP和UDP的區(qū)別
- TCP是面向連接的愧捕、可靠的流協(xié)議。流指不間斷的數(shù)據(jù)結(jié)構(gòu)碟摆。當(dāng)應(yīng)用程序采用TCP發(fā)送消息時(shí),雖然可以保證發(fā)送順序叨橱,但還是猶如沒有任何間隔的數(shù)據(jù)流發(fā)送給接收端典蜕。
- UDP是不具有可靠性的數(shù)據(jù)報(bào)協(xié)議,雖然可以確保發(fā)送消息的大小罗洗,卻不能保證消息一定會(huì)到達(dá)愉舔。
- TCP/IP或UDP/IP通信中通常采用5個(gè)信息來識別一個(gè)通信。“源IP地址”伙菜、“目標(biāo)IP地址”轩缤、“協(xié)議號”、“源端口號”、“目標(biāo)端口號”火的。
識別多個(gè)請求
2壶愤、端口號
- MAC地址用來識別同一鏈路中不同的計(jì)算機(jī)
- IP地址用來識別TCP/IP網(wǎng)絡(luò)中互連的主機(jī)和路由器
- 端口號用來識別同一臺(tái)計(jì)算機(jī)中進(jìn)行通信的不同應(yīng)用程序
端口號的確定
- 標(biāo)準(zhǔn)既定的端口號
知名端口號一般由0 ~ 1023分配而成,指定每個(gè)應(yīng)用程序的端口號分布在1024 ~ 49151的數(shù)字之間馏鹤。- 時(shí)序分配法
由操作系統(tǒng)進(jìn)行分配征椒,在之前分配號碼的基礎(chǔ)上加1,動(dòng)態(tài)分配的端口號取值范圍在49152 ~ 65535之間湃累。
3勃救、UDP
UDP(User Datagram Protocol)
利用IP提供面向無連接的通信服務(wù)治力;傳過程即使出現(xiàn)丟包蒙秒,也不負(fù)責(zé)重發(fā);當(dāng)出現(xiàn)包到達(dá)順序亂掉時(shí)也沒有糾正功能宵统。
UDP的應(yīng)用:
- 包總量較少的通信(DNS晕讲、SNMP等)
- 視頻、音頻等多媒體通信(即時(shí)通信)
- 限定于LAN等特定網(wǎng)絡(luò)中的應(yīng)用通信
- 廣播通信(廣播榜田、多播)
4益兄、TCP
實(shí)現(xiàn)數(shù)據(jù)傳輸各種控制功能,可以進(jìn)行丟包時(shí)的重發(fā)控制箭券,還可以對次序亂掉的分包進(jìn)行順序控制净捅,是一種面向有連接的協(xié)議,可以控制通信流量的浪費(fèi)辩块。
a蛔六、通過序列號和確認(rèn)應(yīng)答提高可靠性
當(dāng)發(fā)送端的數(shù)據(jù)到達(dá)接收主機(jī)時(shí),接收端主機(jī)會(huì)返回一個(gè)已收到消息的通知废亭,這個(gè)消息就做確認(rèn)應(yīng)答(ACK)国章。
序列號是按順序給發(fā)送數(shù)據(jù)的每一個(gè)字節(jié)(8位字節(jié))都標(biāo)上號碼的編號(建立連接后由隨機(jī)數(shù)生成),接收端查詢接收數(shù)據(jù)TCP首部中的序列號和數(shù)據(jù)長度豆村,將自己下一步應(yīng)該接收的序號作為確認(rèn)應(yīng)答返送回去液兽。
發(fā)送數(shù)據(jù)
b、確定超時(shí)重發(fā)
超時(shí)重發(fā)是指在重發(fā)數(shù)據(jù)之前掌动,等待確認(rèn)應(yīng)答到來的那個(gè)特定時(shí)間間隔四啰。
每次發(fā)包時(shí)計(jì)算往返時(shí)間及其偏差,重發(fā)超時(shí)時(shí)間就是稍大于往返時(shí)間和偏差相加值粗恢。
重發(fā)超時(shí)都是0.5秒的整數(shù)倍柑晒,若重發(fā)超過一定次數(shù)仍無確認(rèn)應(yīng)答返回,則判斷為網(wǎng)絡(luò)或?qū)Χ酥鳈C(jī)發(fā)生異常眷射,強(qiáng)制關(guān)閉連接匙赞。
往返時(shí)間的計(jì)算與重發(fā)超時(shí)的時(shí)間推移
c佛掖、連接管理
在數(shù)據(jù)通信之前,通過TCP首部發(fā)送一個(gè)SYN包作為建立連接的請求等待確認(rèn)應(yīng)答涌庭。若對端發(fā)來確認(rèn)應(yīng)答芥被,則認(rèn)為可以進(jìn)行數(shù)據(jù)通信,否則不會(huì)進(jìn)行數(shù)據(jù)通信脾猛。在通信結(jié)束時(shí)會(huì)進(jìn)行斷開連接的處理(FIN包)撕彤。
一個(gè)連接的建立與斷開,正常至少需要來回發(fā)送7個(gè)包猛拴。建立連接需要發(fā)送3個(gè)包羹铅,稱作3次握手。
TCP連接的建立與斷開
d愉昆、TCP以段為單位發(fā)送數(shù)據(jù)
最大消息長度(MSS:Maximum Segment Size)职员,最理想情況是最大消息長度剛好是IP中不會(huì)被分片處理的最大數(shù)據(jù)長度。
MSS是在三次握手的時(shí)候跛溉,在兩端主機(jī)之間被計(jì)算得出焊切。
接入以太網(wǎng)主機(jī)與接入FDDI主機(jī)之間通信的情況
e、利用窗口控制提高速度
窗口大小就是指無需等待確認(rèn)應(yīng)答而可以繼續(xù)發(fā)送數(shù)據(jù)的最大值芳室。下圖窗口大小為4個(gè)段专肪。
用滑動(dòng)窗口方式并行處理
f、窗口控制與重發(fā)控制
-- 確認(rèn)應(yīng)答未能返回:數(shù)據(jù)已經(jīng)到達(dá)對端堪侯,不需要再進(jìn)行重發(fā)
沒有確認(rèn)應(yīng)答也不受影響
-- 報(bào)文段丟失:接收主機(jī)如果收到一個(gè)自己應(yīng)該接收的序號以外的數(shù)據(jù)時(shí)嚎尤,會(huì)針對當(dāng)前為止收到數(shù)據(jù)返回確認(rèn)應(yīng)答。發(fā)送端主機(jī)如果連續(xù)3次收到同一個(gè)確認(rèn)應(yīng)答伍宦,就將其對應(yīng)數(shù)據(jù)重發(fā)芽死。
高速重發(fā)控制
g、流控制
接收端主機(jī)向發(fā)送端主機(jī)通知自己可接受數(shù)據(jù)的大小次洼,于是發(fā)送端會(huì)發(fā)送不超過這個(gè)限度的數(shù)據(jù)关贵,該大小限度就被稱作窗口大小。
流控制
h卖毁、擁塞控制
定義擁塞窗口揖曾,可以有效的減少通信開始時(shí)連續(xù)發(fā)包導(dǎo)致的網(wǎng)絡(luò)擁堵。
包的每次往返亥啦,擁塞窗口以1炭剪、2、4等指數(shù)函數(shù)的增長禁悠,擁堵狀況激增甚至導(dǎo)致網(wǎng)絡(luò)的擁塞念祭,引入慢
啟動(dòng)閾值兑宇。擁塞窗口超過此閾值碍侦,在沒收到一次確認(rèn)應(yīng)答時(shí),只允許下面這種比例放大擁塞窗口:
5、UDP首部格式
UDP首部由源端口號瓷产、目標(biāo)端口號站玄、包長和校驗(yàn)和組成。
- 源端口號
字段長16位濒旦。該字段為可選字段株旷,沒有源端口號該字段值設(shè)置為0。- 目標(biāo)端口
接收端端口尔邓,字段長度16位- 包長度
該字段保存了UDP首部的長度跟數(shù)據(jù)的長度之和晾剖。單位為字節(jié)(8位字節(jié))- 校驗(yàn)和
計(jì)算校驗(yàn)和時(shí),附加在UDP偽首部和UDP數(shù)據(jù)報(bào)之前梯嗽。將UDP首部的校驗(yàn)和字段設(shè)置為“0”齿尽,然后以16比特為單位進(jìn)行1的補(bǔ)碼和,將補(bǔ)碼和寫入該字段灯节。
校驗(yàn)和和計(jì)算中使用的UDP偽首部
5循头、TCP首部格式
- 源端口號
字段長16位。- 目標(biāo)端口
接收端端口炎疆,字段長度16位- 序列號
字段長32位卡骂。序列號是指發(fā)送數(shù)據(jù)的位置。每發(fā)送一次數(shù)據(jù)形入,就累加一次該數(shù)據(jù)字節(jié)數(shù)的大小全跨。(建立和斷開連接的SYN包和FIN包也會(huì)作為一個(gè)字節(jié)增加對應(yīng)的序列號)- 確認(rèn)應(yīng)答號
字段長度32位,指下一次應(yīng)該收到的數(shù)據(jù)序列號唯笙。- 數(shù)據(jù)偏移
該字段表示TCP所傳輸?shù)臄?shù)據(jù)部分應(yīng)該從TCP包的哪個(gè)位開始計(jì)算螟蒸,也即TCP首部長度。長4位崩掘,單位為4字節(jié)(即32位)
不包括選項(xiàng)字段的話七嫌,TCP首部為20字節(jié)長- 保留
擴(kuò)展時(shí)使用,長度為4位苞慢,一般設(shè)置為0.- 控制位
字段長為8位诵原。
控制位- 窗口大小
字段長16位,用于通知從相同TCP首部的確認(rèn)應(yīng)答號所指位置開始能夠接收的數(shù)據(jù)大型旆拧绍赛;窗口為0時(shí),則發(fā)送窗口探測辑畦,以了解最新的窗口大小吗蚌。- 校驗(yàn)和
與UDP類似,區(qū)別在于TCP的校驗(yàn)和無法關(guān)閉纯出。
用于校驗(yàn)和計(jì)算的TCP偽首部- 緊急指針
字段長16位蚯妇,在URG控制位為1時(shí)有效敷燎。- 選項(xiàng)
其長度最大為40字節(jié),盡量調(diào)整到32位的整數(shù)倍箩言。
第七章 路由協(xié)議
1硬贯、路由控制的定義
向正確的方向轉(zhuǎn)發(fā)數(shù)據(jù)所進(jìn)行的處理就叫做路由控制或路由,由路由控制表轉(zhuǎn)發(fā)數(shù)據(jù)包陨收。
- 靜態(tài)路由
是指事先設(shè)置好路由器和主機(jī)饭豹,并將路由信息固定的一種方法。動(dòng)態(tài)路由
讓路由協(xié)議在運(yùn)行過程中自動(dòng)地設(shè)置路由控制信息的一種方法务漩。
靜態(tài)路由與動(dòng)態(tài)路由
2拄衰、路由控制范圍
定制自己的路由策略,并以此為準(zhǔn)在一個(gè)或多個(gè)網(wǎng)絡(luò)群體中采用的小型單位稱為自治系統(tǒng)(AS:Autonomous System)或路由選擇域(Routing Domain)。
自治系統(tǒng)內(nèi)部動(dòng)態(tài)路由采用協(xié)議是域內(nèi)路由協(xié)議(IGP);自治系統(tǒng)之間的路由控制采用的是域間路由協(xié)議(EGP)桥温。
EGP和IGP
3欣尼、路由算法
距離向量算法
是根據(jù)距離(代價(jià))和方向決定目標(biāo)網(wǎng)絡(luò)或目標(biāo)主機(jī)位置的一種方法。
距離向量- 鏈路狀態(tài)算法
是路由器在了解網(wǎng)絡(luò)整體連接狀態(tài)的基礎(chǔ)上生成路由控制表的一種方法。每個(gè)路由器必須保持同樣信息才能進(jìn)行正確的路由選擇。
主要路由協(xié)議
EGP不再用作互聯(lián)網(wǎng)的對外連接協(xié)議。
幾種路由協(xié)議的特點(diǎn)
4源葫、RIP
RIP(Routing Information Protocol)是距離向量型的一種路由協(xié)議,廣泛應(yīng)用于LAN砖瞧。
采用RIP進(jìn)行路由控制的范圍內(nèi)必須注意兩點(diǎn):一是息堂,因IP地址的分類而產(chǎn)生不同的網(wǎng)絡(luò)地址時(shí);二是块促,構(gòu)造網(wǎng)絡(luò)地址長度不同的網(wǎng)絡(luò)環(huán)境時(shí)荣堰。
RIP與子網(wǎng)掩碼
RIP基本行為可歸納為如下兩點(diǎn):
- 將自己所知道的路由信息定期進(jìn)行廣播;
- 一旦認(rèn)為網(wǎng)絡(luò)被斷開竭翠,數(shù)據(jù)將無法流過此路由器振坚,其他路由器也就可以得知網(wǎng)絡(luò)已經(jīng)斷開。
以上兩點(diǎn)存在一些問題:像這樣收到自己發(fā)出去的消息斋扰,稱為無限計(jì)數(shù)問題渡八。
解決方式
1、為最長距離不超過16传货,信息被保留120s屎鳍。
無限計(jì)數(shù)問題2、規(guī)定路由器不再把所收到的路由消息原路返還給發(fā)送端问裕,稱為水平分割逮壁。
水平分割
5、OSPF
OSPF(Open Shortest Path First)是一種鏈路狀態(tài)型路由協(xié)議粮宛。由于采用鏈路狀態(tài)窥淆,即使網(wǎng)絡(luò)中有環(huán)路十饥,也能夠進(jìn)行穩(wěn)定的路由控制。支持子網(wǎng)掩碼祖乳。
鏈路狀態(tài)確定路由
OSPF可以給每條鏈路賦予一個(gè)權(quán)重(代價(jià)),并始終選擇一個(gè)權(quán)重最小的路徑作為最終路由秉氧。
RIP是選擇路由器個(gè)數(shù)最少的路徑眷昆,OSPF是選擇總代價(jià)最小的路徑。
網(wǎng)絡(luò)權(quán)重與路由選擇
OSPF基礎(chǔ)知識
OSPF包類型
OSPF工作原理概述
OSPF根據(jù)鏈路狀態(tài)生成路由控制表
- 管理員可以自定義HELLO包的發(fā)送間隔和判斷連接斷開的時(shí)間汁咏。LAN每10s發(fā)送一個(gè)hello包亚斋,允許空等3次,到第4次(40s后)仍無反饋則認(rèn)為連接已斷開攘滩。
- 鏈路狀態(tài)更新包所傳消息分為兩類:一是網(wǎng)絡(luò)鏈路狀態(tài)通告(網(wǎng)絡(luò)LSA)。一個(gè)是路由器鏈路狀態(tài)通告(路由器LSA)
將區(qū)域分層化進(jìn)行細(xì)分管理
區(qū)域是指將連接在一起的網(wǎng)絡(luò)和主機(jī)劃分成小組漂问,使一個(gè)自治系統(tǒng)(AS)內(nèi)可以擁有多個(gè)區(qū)域赖瞒,具有多個(gè)區(qū)域的自治系統(tǒng)必須要有一個(gè)主干區(qū)域,所有其他區(qū)域必須都與這個(gè)主干區(qū)域相連接蚤假。
AS與區(qū)域
作為區(qū)域出口的區(qū)域邊界路由器若只有一個(gè)的話叫做末端區(qū)域栏饮,如區(qū)域2.末端區(qū)域內(nèi)不需要發(fā)送區(qū)域外的路由信息。
區(qū)域內(nèi)的路由控制和區(qū)域之間的路由控制
6磷仰、BGP
BGP(Border Gateway Protocol)袍嬉,邊界網(wǎng)關(guān)協(xié)議是連接不同組織機(jī)構(gòu)(或者說連接不同自治系統(tǒng))的一種協(xié)議,屬于外部網(wǎng)關(guān)協(xié)議(EGP)
BGP使用AS號管理網(wǎng)絡(luò)信息
BGP中數(shù)據(jù)包送達(dá)目標(biāo)網(wǎng)絡(luò)時(shí)灶平,會(huì)生成一個(gè)中途經(jīng)過所有AS的編號列表伺通,這表格叫做AS路徑信息訪問列表。BGP一般選擇AS數(shù)較少的路徑逢享。
7罐监、MPLS
MPLS(Multi Protocol Label Switching),多協(xié)議標(biāo)記交換技術(shù)
MPLS網(wǎng)絡(luò)
基于標(biāo)記的轉(zhuǎn)發(fā)通常無法在路由器上進(jìn)行瞒爬,所以MPLS也就無法被整個(gè)互聯(lián)網(wǎng)采用笑诅。
IP與MPLS轉(zhuǎn)發(fā)的基本行為對比
LSR(Label Switching Router)標(biāo)記交換路由器;
LER(Label Edge Router)標(biāo)記邊緣路由器疮鲫。
使用Push吆你、Swap和Pop功能進(jìn)行轉(zhuǎn)發(fā)
MPLS優(yōu)點(diǎn):
- 轉(zhuǎn)發(fā)速度快
- 利用標(biāo)記生成虛擬路徑,并在它的上面實(shí)現(xiàn)IP等數(shù)據(jù)包的通信俊犯。
第八章 應(yīng)用協(xié)議
1妇多、應(yīng)用層協(xié)議概要
應(yīng)用協(xié)議則是為了實(shí)現(xiàn)某種應(yīng)用而設(shè)計(jì)和創(chuàng)造的協(xié)議。應(yīng)用層涵蓋了OSI參考模型的第5燕侠、第6者祖、第7層所有功能立莉,即管理通信連接的會(huì)話層功能、轉(zhuǎn)換數(shù)據(jù)格式的表示層功能七问,與對端主機(jī)交互的應(yīng)用層功能蜓耻。
2、遠(yuǎn)程登錄
遠(yuǎn)程登錄主要使用TELNET和SSH兩種協(xié)議械巡。
- TELNET
TELNET利用TCP的一條連接刹淌,通過這條連接像主機(jī)發(fā)送文字命令并在主機(jī)上執(zhí)行。
可以分為兩類基本服務(wù):一是仿真終端功能讥耗,二是協(xié)商選項(xiàng)機(jī)制有勾。
TELNET中輸入命令、運(yùn)行 古程、展示結(jié)果的過程
行模式和透明模式
TELNET客戶端通常與目標(biāo)主機(jī)的23號端口建立連接蔼卡,并監(jiān)聽這個(gè)端口的服務(wù)端程序telnetd進(jìn)行交互。
TCP端口號為21連接到FTP挣磨,25連接到SMTP雇逞,80連接到HTTP,110連接到POP3茁裙。
- SSH
SSH是加密的遠(yuǎn)程登錄系統(tǒng)喝峦。TELNET中登錄時(shí)無需輸入密碼就可以發(fā)送,容易造成通信竊聽和非法入侵的危險(xiǎn)呜达。
SSH的功能:
1谣蠢、可以使用更強(qiáng)的認(rèn)證機(jī)制。
2查近、可以轉(zhuǎn)發(fā)文件眉踱。
3、可以使用端口轉(zhuǎn)發(fā)功能霜威。
SSH的端口轉(zhuǎn)發(fā)
3谈喳、文件傳輸
FTP
通過兩條TCP連接,一條用來控制戈泼,控制用的連接使用的是TCP的21號端口婿禽;另一條用于數(shù)據(jù)(文件)的傳輸,通常用于數(shù)據(jù)傳輸?shù)腡CP連接是按照與控制用的連接相反方向建立的大猛,數(shù)據(jù)傳輸用的端口號使用隨機(jī)數(shù)進(jìn)行分配扭倾。
FTP通信中使用兩條TCP連接
注:FTP主要命令及主要應(yīng)答消息見電子書273-275頁。
4挽绩、電子郵件
SMTP
提供電子郵件服務(wù)的協(xié)議叫做SMTP(Simple Mail Transfer Protocol)膛壹,傳輸層使用了TCP協(xié)議。
現(xiàn)在互聯(lián)網(wǎng)中電子郵件的發(fā)送過程
電子郵件機(jī)制由3部分組成:
1、郵件地址模聋。
2肩民、數(shù)據(jù)格式。
3链方、發(fā)送協(xié)議持痰。
郵件地址:電子郵件的發(fā)送地址由DNS進(jìn)行管理。DNS中注冊有郵件地址及其作為發(fā)送地址時(shí)對應(yīng)的郵件服務(wù)器的域名祟蚀。
MIME:可以發(fā)送靜態(tài)圖像工窍、動(dòng)畫、聲音暂题、程序等各種形式的數(shù)據(jù),規(guī)定了應(yīng)用消息格式究珊,相當(dāng)于第6層表示層薪者。
SMTP:發(fā)送電子郵件的協(xié)議,使用TCP的25號端口剿涮。
SMTP
注:SMTP主要命令及主要應(yīng)答消息見電子書279-281頁言津。
POP:該協(xié)議是一種用于接收電子郵件的協(xié)議。
發(fā)送端的郵件根據(jù)SMTP協(xié)議將被轉(zhuǎn)發(fā)給一直處于插電狀態(tài)的POP服務(wù)器取试,客戶再根據(jù)POP協(xié)議從POP服務(wù)器接收對方發(fā)來的郵件悬槽。
POP的工作機(jī)制
POP與SMTP一樣,都是在其客戶端和服務(wù)器之間通過建立一個(gè)TCP連接完成相應(yīng)操作瞬浓。
IMAP:也是接收電子郵件協(xié)議初婆。
POP中郵件在客戶端進(jìn)行管理,而IMAP中郵件在服務(wù)器上面管理猿棉,IMAP是在服務(wù)器上處理MIME信息磅叛。
5、WWW(World Wide Web)
WWW的3個(gè)重要概念:
- 訪問信息的手段與位置URI(Uniform Resource identifier)
- 信息的表現(xiàn)形式HTML(HyperText Markup Language)
- 信息轉(zhuǎn)發(fā)HTTP(HyperText Transfer Protocol)
URI
URL(Uniform Resource Locator)常被人用來表示互聯(lián)網(wǎng)中資源(文件)的具體位置萨赁。URI是一個(gè)廣義概念弊琴,可以用于除了WWW之外的其他應(yīng)用協(xié)議中。
http方案具體格式
HTML
HTML是記述Web頁的一種語言(數(shù)據(jù)格式)杖爽,也可以說是WWW通用的數(shù)據(jù)表現(xiàn)協(xié)議敲董。
HTTP
HTTP默認(rèn)使用80端口。當(dāng)客戶端向服務(wù)器的80端口建立一個(gè)TCP連接慰安,然后在這個(gè)TCP連接上進(jìn)行請求和應(yīng)答以及數(shù)據(jù)報(bào)文的發(fā)送腋寨。
HTTP的工作機(jī)制
HTTP的主要命令
- 1×× 指示信息:表示請求已接收,繼續(xù)處理化焕。
應(yīng)答報(bào)文-信息提供- 2×× 成功:表示請求已被成功接收精置、理解、接收锣杂。
應(yīng)答報(bào)文-肯定應(yīng)答- 3×× 重定向:要完成請求必須進(jìn)行更進(jìn)一步操作脂倦。
應(yīng)答報(bào)文-重定向請求- 4×× 客戶端錯(cuò)誤:請求有語法錯(cuò)誤或請求無法實(shí)現(xiàn)番宁。
應(yīng)答報(bào)文-客戶端請求內(nèi)容出現(xiàn)錯(cuò)誤- 5×× 服務(wù)器端錯(cuò)誤:服務(wù)器未能實(shí)現(xiàn)合法請求。
應(yīng)答報(bào)文-服務(wù)器錯(cuò)誤
JavaScript赖阻、CGI蝶押、Cookie
- JavaScript
JavaScript是一種嵌入在HTML中的編程語言。最近盛行服務(wù)器端不需要讀取整個(gè)頁面而是通過JavaScript操作DOM來實(shí)現(xiàn)更為生動(dòng)的Web頁面的技術(shù)——Ajax(Asynchronous JavaScript and XML)
JavaScript火欧、CGI中的處理流程- CGI
CGI(Common Gateway Interface)是Web服務(wù)器調(diào)用外部程序時(shí)所使用的一種服務(wù)端應(yīng)用的規(guī)范棋电。
利用CGI可以針對用戶的操作返回給客戶端各種各樣變化的信息。經(jīng)常使用CGI調(diào)用外部程序或訪問數(shù)據(jù)庫苇侵。- Cookie
Web應(yīng)用中為了獲取用戶信息使用一個(gè)叫做Cookie的機(jī)制赶盔,Web服務(wù)器用Cookie在客戶端保存信息(多為用戶名和登錄名等信息)。
6榆浓、網(wǎng)絡(luò)管理
- SNMP
SNMP(Simple Network Management Protocol)于未,它是基于UDP/IP的協(xié)議
SNMP工作機(jī)制
根據(jù)查詢請求和應(yīng)答可以定期檢查設(shè)備的運(yùn)行動(dòng)作,根據(jù)設(shè)置請求可以修改設(shè)備的參數(shù)陡鹃。SNMP的處理可分為從設(shè)備讀取數(shù)據(jù)和向設(shè)備寫入數(shù)據(jù)烘浦,采用Fetch和Store模式。
- MIB
SNMP中交互的信息是MIB(Management Information Base)萍鲸,MIB是在樹形結(jié)構(gòu)的數(shù)據(jù)庫中為每個(gè)項(xiàng)目附加編號的一種信息結(jié)構(gòu)闷叉。
可以收集沖突的次數(shù)和流量統(tǒng)計(jì)等信息,可以修改接口IP地址脊阴,還可以進(jìn)行路由器的啟停握侧、設(shè)備的啟動(dòng)和關(guān)閉等處理。
RMON
RMON是Remote Monitoring MIB的縮寫嘿期,MIB由監(jiān)控網(wǎng)絡(luò)中某個(gè)設(shè)備接口(某個(gè)點(diǎn))的總舵參數(shù)構(gòu)成藕咏,而RMON則由監(jiān)控網(wǎng)絡(luò)上線路的眾多參數(shù)構(gòu)成。
RMON是判斷當(dāng)前網(wǎng)絡(luò)是否被充分利用的重要資料秽五。
第九章 網(wǎng)絡(luò)安全
1孽查、網(wǎng)絡(luò)安全構(gòu)成要素
構(gòu)造安全網(wǎng)絡(luò)的要素
防火墻
防火墻舉例
IDS(入侵檢測系統(tǒng))
IDS有定期采集日志、長期監(jiān)控坦喘、通知異常等功能盲再,他可以監(jiān)控網(wǎng)絡(luò)上流動(dòng)的所有數(shù)據(jù)包宅粥。一般在防火墻或DMZ(專用子網(wǎng)撒璧,非軍事化區(qū))等邊界設(shè)備上進(jìn)行設(shè)置。
反病毒/個(gè)人防火墻
反病毒/個(gè)人防火墻是yoghurt使用的計(jì)算機(jī)或服務(wù)器上運(yùn)行的軟件渡处。
PKI(公鑰基礎(chǔ)結(jié)構(gòu)棠笑,Public Key Infrastructure)是一種通過可信賴的第三方檢查通信對方是否真實(shí)而進(jìn)行驗(yàn)證的機(jī)制梦碗。
2、加密技術(shù)基礎(chǔ)
加密技術(shù)分布于OSI參考模型的各個(gè)階層一樣。
加密技術(shù)的逐層分類
各層加密應(yīng)用舉例
對稱密碼體制與公鑰密碼體制
對稱加密方式與公鑰加密方式
3洪规、安全協(xié)議
Ipsec與VPN
VPN(virtual Private Network印屁,虛擬專用網(wǎng))。
在構(gòu)建VPN時(shí)斩例,最長被使用的是IPsec雄人,它是指在IP首部的后面追加“封裝安全有效載荷”和“認(rèn)證首部”,從而對此后的數(shù)據(jù)進(jìn)行加密念赶。
通過IPsec加密IP包
TLS/SSL與HTTPS
Web中可以通過TLS/SSL對HTTP通信進(jìn)行加密础钠,使用TLS/SSL的HTTP通信叫做HTTPS通信。
HTTPS采用對稱加密方式叉谜,我在發(fā)送器公共密鑰時(shí)采用的則是公鑰加密方式旗吁。
HTTPS
附錄
A類
A類B類
B類1
B類2C類
C類