概述
電腦指標(biāo)
- 內(nèi)存:CPU使用的所有數(shù)據(jù)都來于內(nèi)存号坡,不論是軟件程序還是文件數(shù)據(jù)肆资,都必須存入內(nèi)存后才能使用矗愧,內(nèi)存除了頻率/帶寬的考慮外,容量也很重要郑原,因為所有數(shù)據(jù)必須加載到內(nèi)存中才能讀取唉韭,如果內(nèi)存容量不夠大,會導(dǎo)致某些大容量的數(shù)據(jù)無法被完整的加載犯犁,此時內(nèi)存中某些沒有用到的數(shù)據(jù)需要暫時被釋放掉属愤,因此,越大內(nèi)存的系統(tǒng)越快速栖秕,因為系統(tǒng)不用常常釋放一些內(nèi)存中的數(shù)據(jù)
- 字長(word size):CPU每次能夠處理的數(shù)據(jù)量稱為字長春塌,分為32位和64位,就是現(xiàn)在電腦的32位和64位
網(wǎng)絡(luò)
- 局域網(wǎng):覆蓋范圍小簇捍,自己花錢買設(shè)備,帶寬固定 10M 100M 1000M 最遠(yuǎn)100m
- 廣域網(wǎng):距離遠(yuǎn)大于100m俏拱,花錢租帶寬
- internet
- 數(shù)據(jù)的返回:網(wǎng)頁上的數(shù)據(jù)是一塊塊發(fā)送給請求端的暑塑,成功接收后發(fā)送反饋信息,鏈路就可以清理掉緩存锅必,數(shù)據(jù)都接受完畢后事格,會拼接恢復(fù)網(wǎng)頁
OSI參考模型
- 應(yīng)用層(數(shù)據(jù)):所有能產(chǎn)生流量的程序,確定進(jìn)程之間通信的性質(zhì)以滿足用戶以及提供網(wǎng)絡(luò)與用戶應(yīng)用
- 表示層(數(shù)據(jù)):在傳輸之前是否進(jìn)行加密或壓縮處理搞隐,用二進(jìn)制或ASCII碼表示驹愚,解決用戶信息的語法表示問題,加密解密
- 會話層(數(shù)據(jù)):查看是否有木馬劣纲,查看需求端和網(wǎng)站之間的連接逢捺,提供包括訪問驗證和會話管理
- 傳輸層(段):可靠傳輸,流量控制癞季,不可靠傳輸(一個數(shù)據(jù)包劫瞳,不需要建立回話倘潜,例如像DNS查詢網(wǎng)站的IP地址)
- 網(wǎng)絡(luò)層(包):負(fù)責(zé)選擇最佳路徑,規(guī)劃IP地址(IPV4和IPV6的變化只影響網(wǎng)絡(luò)層)
- 數(shù)據(jù)鏈路層(幀):幀的開始和結(jié)束志于,透明傳輸涮因,差錯校驗(只進(jìn)行校驗,校驗通過接受伺绽,不通過拒收养泡,糾錯由傳輸層解決)
- 物理層(比特流):定義網(wǎng)絡(luò)設(shè)備接口標(biāo)準(zhǔn),電氣標(biāo)準(zhǔn)(電壓)奈应,如何在物理鏈路上穿的更快
網(wǎng)絡(luò)排錯
- 模型的每一層都為上一層提供服務(wù)澜掩,一旦某一層崩了,上面的所有層就崩了钥组,所以排查要從最下層排查
- 物理層排查:查看鏈路狀態(tài)输硝,發(fā)送和接受數(shù)據(jù)包是否正常
- 數(shù)據(jù)鏈路層排查:當(dāng)有兩個相同的MAC地址訪問造成MAC地址沖突,ASDL撥號欠費(fèi)程梦,發(fā)送接收雙方的網(wǎng)口速率沒有協(xié)商一致点把,計算機(jī)連接到其他VLAN中
- 網(wǎng)絡(luò)層排查:IP地址,子網(wǎng)掩碼屿附,網(wǎng)關(guān)配置錯誤郎逃,存在不可達(dá)的網(wǎng)關(guān)導(dǎo)致數(shù)據(jù)無法達(dá)到指定位置
- 應(yīng)用層(三層合并):應(yīng)用程序配置有誤,加上了不合適的代理訪問
TCP/IP
參考模型 TCP/IP協(xié)議棧
應(yīng)用層挺份,表示層褒翰,會話層 -- HTTP FTP -DNS
傳輸層 -- TCP - UDP
網(wǎng)絡(luò)層 -- ARP,IP,ICMP,IGMP
數(shù)據(jù)鏈路層,物理層 -- Ethernet/ATM/FRAME RELAY
TCP/IP包
MAC頭部 IP頭部 TCP頭部 數(shù)據(jù)塊
|------以太網(wǎng)包-------------|
|-------IP包--------|
服務(wù)器S 路由器R1 集線器 客戶端
IP表 IP表 以太網(wǎng)表 IP表
IP IP 以太網(wǎng) IP
以太網(wǎng) 以太網(wǎng) 以太網(wǎng)
<----- <----- <-----
R2 S 數(shù)據(jù) R1 S 數(shù)據(jù) R1 S 數(shù)據(jù)
IP協(xié)議根據(jù)IP地址找到包的傳輸方向匀泊,找到下一個路由器的位置优训,委托以太網(wǎng)協(xié)議將包傳輸過去,IP協(xié)議會查找下一個路由器的以太網(wǎng)地址(MAC地址)各聘,將地址寫入MAC頭部當(dāng)包傳到下一個路由器揣非,又會繼續(xù)查出下一個路由器的MAC地址,更新MAC頭部躲因。TCP/IP中IP和以太網(wǎng)的分工早敬,以太網(wǎng)也可以換成無線局域網(wǎng),ADSL大脉,F(xiàn)TTP等搞监,都可以替代以太網(wǎng)幫助IP協(xié)議來傳包。這樣將IP與負(fù)責(zé)傳輸?shù)木W(wǎng)絡(luò)分開镰矿,可以更好的根據(jù)使用需要的各種通信技術(shù)琐驴。
IP協(xié)議負(fù)責(zé)尋找傳輸方向,以太網(wǎng)協(xié)議負(fù)責(zé)傳輸
數(shù)據(jù)傳輸過程
應(yīng)用層,表示層棍矛,會話層 <-> 客戶端發(fā)出上層數(shù)據(jù)
傳輸層 <-> TCP頭 + 上層數(shù)據(jù) (數(shù)據(jù)段或消息)
網(wǎng)絡(luò)層 <-> IP頭 + TCP + 上層數(shù)據(jù) (數(shù)據(jù)包)
數(shù)據(jù)鏈路層 <-> MAC頭 + IP + TCP + 上層數(shù)據(jù) + FCS(差錯校驗) (數(shù)據(jù)幀)
物理層 <-> 010110101001000010 (二進(jìn)制bit)
# 各數(shù)據(jù)組成
1.目標(biāo)MAC地址源MAC地址(鏈路層) + 2.目標(biāo)IP源IP地址(網(wǎng)絡(luò)層) + 3.源端口目標(biāo)端口(傳輸層) + 4.數(shù)據(jù) + 5.FCS
數(shù)據(jù)幀:12345
數(shù)據(jù)包:234
數(shù)據(jù)段:34
性能指標(biāo)
- 速率:連接在計算機(jī)網(wǎng)絡(luò)上的主機(jī)在數(shù)字信道上傳送數(shù)據(jù)位數(shù)的速率安疗,data rate,bit rate(比特率)够委,單位b/s,kb/s,Mb/s,Gb/s
- 帶寬:數(shù)字信道能傳送的最高數(shù)據(jù)率荐类,單位b/s,kb/s,Mb/s,Gb/s。寬帶10M就是帶寬為10Mb/s, 而網(wǎng)速是以字節(jié)Byte為單位茁帽,所以需要帶寬/8 玉罐,在100KB/s左右, 20M/5M -> Mbit/s -> 每秒2.5MB/每秒625KB
數(shù)據(jù)容量使用二進(jìn)制形式 1GB=1024*1024*1024 B
速度單位用十進(jìn)制表示 1GHz=1000*1000*1000 Hz CPU頻率為3.6GHz潘拨,表示這塊CPU一秒內(nèi)可以進(jìn)行3.6*10E9工作
- 吞吐量:在單位時間內(nèi)某個網(wǎng)絡(luò)總的數(shù)據(jù)量吊输,b/s,Mb/s
- 時延:包括發(fā)送延時,傳播延時铁追,處理延時季蚂,排隊延時。發(fā)送延時等于數(shù)據(jù)塊的長度(bit)除以信道帶寬(bit/s),帶寬越大琅束,發(fā)送延時越小扭屁,信號波長越短,信道上的數(shù)據(jù)量就越大涩禀。
- 傳播延時:信道長度(介質(zhì)長度米)/ 信號在信道上的傳播速率(m/s由傳輸介質(zhì)決定料滥,網(wǎng)線,光纖)
- 時延帶寬積:傳播時延 * 帶寬艾船,描述信道上一共有多少數(shù)據(jù)葵腹,帶寬越大,相同的時間內(nèi)數(shù)據(jù)量越多
- 往返時間RRT(Round Trip Time):從發(fā)送方發(fā)送數(shù)據(jù)開始到接收方和接受導(dǎo)數(shù)據(jù)的時間 ping可以看
- 信道利用率:有數(shù)據(jù)通過的時間/有+無數(shù)據(jù)通過的時間
- 網(wǎng)絡(luò)利用率:信道利用率的加權(quán)平均值 時延D=D0/(1-U) D0:空閑時的實驗 U:信道利用率屿岂,當(dāng)信道利用率接近于時践宴,網(wǎng)絡(luò)時延無限增大,也就是當(dāng)帶寬使用率接近于理論值時爷怀,延時會非常高浴井。
命令
/? 查看命令參數(shù)
ipconfig /all # 查看MAC地址
netstat -n # 查看建立的會話
數(shù)據(jù)鏈路層
基本概念
- 數(shù)據(jù)鏈路層不關(guān)心物理層解決的問題,只關(guān)心幀頭幀尾和數(shù)據(jù)校驗
- 數(shù)據(jù)鏈路層的信道類型:點對點信道霉撵,使用一對一的點對點通信方式。廣播信道:使用一對多的廣播通信方式洪囤,信道上連接的主機(jī)眾多徒坡,需要使用專用的共享信道協(xié)議來協(xié)調(diào)主機(jī)的數(shù)據(jù)發(fā)送。
- 鏈路(link):一條點對點的物理連線瘤缩,中間沒有其他交換節(jié)點
- 數(shù)據(jù)鏈路(data link):處理物理線路喇完,還有通信協(xié)議控制數(shù)據(jù)傳輸,把實現(xiàn)了這些協(xié)議的軟硬件加到鏈路上剥啤,就構(gòu)成了數(shù)據(jù)鏈路锦溪。--當(dāng)前最常用的方式是使用適配器(網(wǎng)卡)來實現(xiàn)這些協(xié)議不脯,包括數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層兩層功能
- 幀:網(wǎng)絡(luò)層給數(shù)據(jù)包加上接收端和發(fā)送端的IP地址,鏈路層加上幀頭幀尾刻诊,MAC地址和校驗值
網(wǎng)絡(luò)層 IP數(shù)據(jù)包 IP數(shù)據(jù)包
裝入 取出
鏈路層 幀【 】 幀【】
物理層 1010...0110 1010...0110
|____________| 鏈路
鏈路層解決的問題
封裝成幀(farming)
- 在一段數(shù)據(jù)的前后加上頭部尾部構(gòu)成幀進(jìn)行定界
幀開始 IP數(shù)據(jù)報 幀結(jié)束
開始發(fā)送 幀首部 幀的數(shù)據(jù)部分 幀尾部
|<------幀長----------->|
幀開始符SOH:0000 0001 幀結(jié)束符EOT:0000 0100
透明傳輸
- 當(dāng)傳輸過程中出現(xiàn)SOH或EOT時會導(dǎo)致判斷失誤防楷,接受錯誤,可以在SOH前插入一轉(zhuǎn)義字符ESC(十六進(jìn)制1B)
- 字節(jié)填充法-接收端的鏈路層在將數(shù)據(jù)發(fā)往網(wǎng)絡(luò)之前刪除插入的轉(zhuǎn)義字符则涯,如果轉(zhuǎn)義字符字符也在數(shù)據(jù)中复局,那在之前再插入轉(zhuǎn)義字符
原始數(shù)據(jù):ESC EOT ESC SOH ESC ESC
差錯檢測
- 數(shù)據(jù)在傳輸?shù)倪^程中可能產(chǎn)生比特差錯:1變0,0變1,傳輸錯誤的比特占傳輸總比特數(shù)的比率為誤碼率BER粟判,與信噪比關(guān)系很大亿昏,為了保證數(shù)據(jù)傳輸?shù)目煽啃裕枰尤氩铄e檢測機(jī)制
- 鏈路層對于傳輸?shù)膸到福捎肅RC(Cyclic Redundancy Check循環(huán)冗余檢測)技術(shù)
傳輸?shù)臄?shù)據(jù) 101001 冗余碼 000
110101 Q 商
P 除數(shù) 1101 | 101001000 2^nM 被除數(shù) 異或
1101
1110
1101
0111
0000
1110
1101
0110
0000
1100
1101
001 余數(shù)R 作為FCS 中間使用異或操作
最終發(fā)送的數(shù)據(jù)是 101001 001
- 在數(shù)據(jù)后面加上冗余碼稱為幀檢測序列FCS(FRAME CHECK SEQUENCE)
- CRC是檢錯方法角钩,F(xiàn)CS是添加在數(shù)據(jù)后面的冗余碼
- 在檢測時用加上FCS的數(shù)據(jù)除以除數(shù),如果余數(shù)為0說明沒有差錯呻澜,不為0說明出現(xiàn)差錯递礼,直接丟棄
- CRC只能做到無差錯接受,要做到可靠傳輸易迹,需要加上確認(rèn)和重傳機(jī)制宰衙,它不是一種無傳輸差錯的檢測機(jī)制
使用點對點的鏈路層
- 用戶撥號電話線接入上網(wǎng)時,用的是PPP協(xié)議睹欲,點對點協(xié)議(Point-to-Point Protocol)
- PPP協(xié)議應(yīng)該滿足簡單供炼,封裝成幀,透明窘疮,差錯檢測袋哼,網(wǎng)絡(luò)層地址協(xié)商,數(shù)據(jù)壓縮協(xié)商等闸衫,不需要滿足糾錯涛贯,流量控制,半雙工或單工鏈路
- PPP稱為因特網(wǎng)的正式標(biāo)準(zhǔn)【RFC 1661】
OSI
PPP有三個組成部分:網(wǎng)絡(luò)控制協(xié)議(NCP)蔚出,允許點到點使用多種網(wǎng)絡(luò)層協(xié)議
鏈路控制協(xié)議(LCP):建立并維護(hù)數(shù)據(jù)鏈路連接
高級數(shù)據(jù)鏈路控制協(xié)議(HDLC):異步或同步串行介質(zhì)
- PPP協(xié)議幀格式
<--首部-----> IP數(shù)據(jù)報 尾部
F A C 協(xié)議 信息部分 FCS Flag
7E FF 03 7E
字節(jié) 1 1 1 2 不超過1500 2 1
標(biāo)志字段Flag=0X7E 十六進(jìn)制 01111110
地址字段Address=0XFF 不起作用
控制字段Ctrl=0X03 所有PPP幀的長度都是整數(shù)字節(jié) 固定的弟翘,因為就一個設(shè)備,配不配地址無所謂
# 字節(jié)填充
當(dāng)信息部分中出現(xiàn)了標(biāo)志字段骄酗,就用字節(jié)填充 0X7E->0X7D,0X5E 0X7D->0X7D,0X5D
# 零比特填充
PPP用在SONET/SDH時稀余,使用同步傳輸,一連串連續(xù)的比特趋翻,采用令比特傳輸發(fā)實現(xiàn)透明傳輸
發(fā)送端發(fā)現(xiàn)有5個連續(xù)的1睛琳,就填入一個0,接收端在掃描中發(fā)現(xiàn)有5個連續(xù)的1就把后一個0刪除
010 01111110 001010 中間會被認(rèn)為標(biāo)志字段F
010 011111010 001010 填充0
- PPP網(wǎng)絡(luò)的工作狀態(tài):當(dāng)用戶撥號進(jìn)入ISP時,路由器的調(diào)制解調(diào)器對撥號做出確認(rèn)师骗,建立一條物理連接历等。PC機(jī)向路由器發(fā)送一系列的LCP分組(封裝成多個PPP幀)。這些分組及其響應(yīng)選擇一些PPP參數(shù)和進(jìn)行網(wǎng)絡(luò)層配置辟癌,NCP給新接入的PC機(jī)分配一個臨時IP寒屯,是PC機(jī)稱為因特網(wǎng)中的一個主機(jī),通信完畢后愿待,NCP釋放網(wǎng)絡(luò)連接浩螺,收回IP地址,然后LCP釋放數(shù)據(jù)鏈路層連接仍侥,最后后釋放物理層連接要出。
使用廣播信道的鏈路層
- 局域網(wǎng)的拓?fù)?/li>
pc pc pc
| | |
PC-集線器-pc 星形網(wǎng) 總線網(wǎng) ———————————— 環(huán)形網(wǎng) 樹形網(wǎng)
- 局域網(wǎng)的特點:網(wǎng)絡(luò)為一個單位擁有,地理范圍和站點數(shù)有限农渊。優(yōu)點:具有廣播功能患蹂,一個站點可以方便訪問全網(wǎng),局域網(wǎng)上主機(jī)共享局域網(wǎng)上的硬軟件資源砸紊,便于系統(tǒng)的擴(kuò)展演變传于,設(shè)備位置可靈活調(diào)整改變,提高了系統(tǒng)可靠性可用性和生存性
- 以太網(wǎng):最初的以太網(wǎng)是將許多計算機(jī)都練到一根總線上
---------------------- 醉顽。匹配電阻
| | | | | |
A B C D E F
總線上每一臺計算機(jī)都能檢測到B發(fā)送的信號沼溜,但由于只有D的地址與數(shù)據(jù)幀的首部地址一樣,D才會接受這個數(shù)據(jù)幀游添,其他的檢測到不是給自己發(fā)送的系草,就會丟棄掉這個數(shù)據(jù)幀,這樣就實現(xiàn)了一對一通信
- CSMA/CD(CARRIER SENSE MULTIPLE ACCESS WITH COLLISION DETECTION) 載波監(jiān)聽多點接入/碰撞檢測協(xié)議
多點接入:許多計算機(jī)以多點接入的方式連接在一根總線上
載波監(jiān)聽:每一個站在發(fā)送數(shù)據(jù)之前要先檢測一下總線上是否有其他計算機(jī)發(fā)送數(shù)據(jù)唆涝,如果有就暫時不發(fā)送數(shù)據(jù)找都,以免發(fā)生碰撞
碰撞檢測:計算機(jī)邊發(fā)送數(shù)據(jù)邊檢測信道上信號電壓的大小,當(dāng)幾個站同時發(fā)送信號時廊酣,信號電壓會相互疊加能耻,當(dāng)一個站檢測到信號電壓超過一定門限值時,就認(rèn)為至少有兩個站在同時發(fā)送數(shù)據(jù)亡驰,產(chǎn)生了碰撞晓猛,也叫做沖突檢測
當(dāng)檢測到碰撞后,數(shù)據(jù)需要立即停止發(fā)送凡辱,免得浪費(fèi)網(wǎng)絡(luò)資源鞍帝,等待一段時間后繼續(xù)發(fā)送
# 電磁波在總線上的有限速率的影響
當(dāng)某個站檢測到總線空閑時,可能并非真正空閑煞茫,A向B發(fā)出的信息,要經(jīng)過一段時間才能達(dá)到B,如果B在檢測到A到B的信息之前就發(fā)出了自己的幀续徽,必然在某個時間會和A發(fā)出的真產(chǎn)生碰撞
# 特性
使用CSMA/CD協(xié)議的以太網(wǎng)不能進(jìn)行全雙工通信(同時發(fā)信號)而只能進(jìn)行雙向交替通信(半雙工通信)
每個站在發(fā)出數(shù)據(jù)后的一小段時間內(nèi)蚓曼,存在著碰撞的可能性,這種可能性使得以太網(wǎng)的平均速率遠(yuǎn)小于最高速率(帶寬)
# 爭用期
發(fā)出數(shù)據(jù)的站钦扭,最多經(jīng)過2t(兩倍的端到端往返時間)就知道是否發(fā)生了碰撞
爭用期:2t纫版,或碰撞窗口,通常取51.2us客情,對于10Mb/s的以太網(wǎng)其弊,在爭用期內(nèi)可發(fā)送512bit,64字節(jié)
所以認(rèn)為發(fā)送數(shù)據(jù)的前64字節(jié)不放聲沖突膀斋,就不會再發(fā)生沖突了
最短有效幀長:64字節(jié)梭伐,凡是長度小于64字節(jié)的幀都是由于沖突而異常種終止的幀
# 二進(jìn)制指數(shù)類型的退避算法
在發(fā)生碰撞停止發(fā)送數(shù)據(jù)后,要推遲一個隨機(jī)事件才能在發(fā)送數(shù)據(jù)
k=min[重傳次數(shù)仰担,10]糊识,從[0...2^k-1]隨機(jī)取一個數(shù)記為r,則重傳時延就是r*基本退避時間(2t)
當(dāng)重傳達(dá)到16次就丟棄該幀摔蓝,向高層報告
以太局域網(wǎng)
- 兩個標(biāo)準(zhǔn):可以將符合802.3的局域網(wǎng)成為以太網(wǎng)赂苗,嚴(yán)格來講是符合DIX ETHERNET V2標(biāo)準(zhǔn)的局域網(wǎng)
- 以太網(wǎng)與數(shù)據(jù)鏈路層的兩個子層:邏輯鏈路控制層(LLC), 媒體接入控制MAC層(MEDIUM ACCESS CONTROL),與傳輸媒體有關(guān)的內(nèi)容都放在MAC層,TCP/IP中經(jīng)銷航使用的局域網(wǎng)是DIX ETHERNET V2而不是802.3贮尉,因此802委員會指定的LLC作用已經(jīng)不大了
- 提供的服務(wù):以太網(wǎng)提供的服務(wù)是不可靠的交付拌滋,如果高層發(fā)現(xiàn)丟失了一些數(shù)據(jù)就進(jìn)行重傳,但以太網(wǎng)不知道這是一個重傳的幀猜谚,而是當(dāng)做一個新的數(shù)據(jù)幀來發(fā)送
- 星形拓?fù)洌涸谛切堑闹行脑黾恿艘环N可靠性非常高的設(shè)備败砂,集線器(hub),使用集線器的以太網(wǎng)仍是一個總線網(wǎng),工作站還是使用CSMA/CD協(xié)議龄毡,并共享邏輯上的總線
- 10BASE-T這種雙絞線通信距離不超過100m吠卷,達(dá)到10Mb/s的速率,降低了成本沦零,提高了可靠性祭隔,他為以太網(wǎng)在局域網(wǎng)中的統(tǒng)治地位奠定了基礎(chǔ)
局域網(wǎng)結(jié)構(gòu)
客戶端
|----集線器 - 交換機(jī) - 路由器 - 互聯(lián)網(wǎng)接入路由器 - 接入網(wǎng) ---》 互聯(lián)網(wǎng)
集線器將信號發(fā)送給所有鏈接在他下面的線路
# 交換機(jī)
|- 。路操。疾渴。。 - 集線器
交換電路|-內(nèi)存 - MAC - PHY(MAU)* RJ45 - 端口2 00-60-97-A5-43-3C
| - 端口7
屯仗。搞坝。。魁袜。
MAC地址表
MAC地址 端口 控制信息
00- 2 桩撮。敦第。
信號達(dá)到網(wǎng)線由PHY模塊接受,會將網(wǎng)線中的信號轉(zhuǎn)化為通用格式店量,傳遞給MAC模塊芜果,MAC將信號轉(zhuǎn)換為數(shù)字信息,通過包末尾FCS檢驗融师,沒問題放入緩沖區(qū)右钾,和網(wǎng)卡相同,網(wǎng)線接口和后面的電路部分一起成為一個端口旱爆,交換機(jī)的一個端口相當(dāng)于一張網(wǎng)卡舀射,和網(wǎng)卡只接受特定MAC地址的包不同,交換機(jī)會將所有包放入緩沖區(qū)怀伦,因此交換機(jī)端口不具有MAC地址脆烟,再查詢這個包的接收方MAC地址是否在MAC地址表中,將包通過交換電路發(fā)送到對應(yīng)的端口上空镜,例如包可以從2號端口到7號端口
信道利用率
爭用期長度2t浩淘,幀長L(bit),數(shù)據(jù)發(fā)送速率C(b/s)吴攒,幀的發(fā)送時間為L/c=t0(s)
|-------爭用期-------------------|----占用期------------|
|----發(fā)送成功--|
<---2t---><---2t--->...<---2t---><-----t0-----><--t---> 發(fā)送一幀所需要的總時間
# 以太網(wǎng)的信道利用率
a=t/t0
a->0 表示一旦發(fā)生碰撞馬上就能檢測出來张抄,并立即停止發(fā)送,信道利用率很高
a越大洼怔,表示爭用期所占的比例越大署惯,每一次碰撞都會浪費(fèi)許多新導(dǎo)資源,利用率明顯降低
# 參數(shù)要求
當(dāng)速率一定镣隶,以太網(wǎng)聯(lián)線長度不能太大极谊,否則t會很大
以太網(wǎng)幀長不能太短,否則T0會太小
# 最大值
理想情況下安岂,無任何碰撞基線信道利用率
Smax=t0/(t0+t)=1/(1+a)
MAC地址
Media Access Control
局域網(wǎng)中硬件地址又稱為MAC地址轻猖,物理地址
IEEE的注冊管理機(jī)構(gòu)RA負(fù)責(zé)向各廠家分配地址字段的前三個字節(jié)(高24位),后三個字節(jié)(低24位)由廠家自行制定域那,稱為擴(kuò)展標(biāo)識符咙边,要保證適配器無重復(fù)地址
一個地址塊可以生成2^24個不同地址,這種48位地址稱為MAC-48次员,EUI-48
MAC地址實際上就是適配器地址或適配器標(biāo)識讀EUI-48
# 適配器檢查MAC地址
適配器從網(wǎng)上收到一個MAC幀后會用硬件檢查MAC幀中的MAC地址败许,如果是本站的幀就接受,否則就丟棄
包括:單播幀(unicast)一對一
廣播(broadcast)幀:一對全體
多波幀(multicast):一對多
# MAC幀格式
字節(jié)
8 6 6 2 數(shù)據(jù)長度:46~1500 4 IP層
插入字節(jié) | 目的地址 源地址 以太類型 數(shù)據(jù)(IP數(shù)據(jù)報) FCS MAC層
| MAC幀 | 物理層
以太類型:標(biāo)志上一層用的是什么協(xié)議淑蔚,以便把收到的MAC幀的數(shù)據(jù)交給上一層的這個協(xié)議
TCP/IP中只使用0800和0806兩種 十六進(jìn)制
0000-05DC:IEEE 802.3
0800:IP協(xié)議
0806:ARP協(xié)議
86DD:IPv6
數(shù)據(jù)字段:MAC客戶端數(shù)據(jù)字段市殷,數(shù)據(jù)字段最小長度=最小長度64字節(jié)-18(首+尾)= 46,當(dāng)數(shù)據(jù)字段不足46時刹衫,應(yīng)在其后加上證書字節(jié)的填充字段醋寝,保證MAC鎮(zhèn)長度不小于64字節(jié)
插入字節(jié):插入字節(jié)的前7個字節(jié)是前同步碼搞挣,用來迅速實現(xiàn)MAC幀的比特同步,最后一個字節(jié)是幀的開始定界符甥桂,表明后面的信息就是MAC幀
# 無效的MAC幀
幀的長度不是整數(shù)字節(jié)柿究,幀檢測序列FCS查出錯誤
數(shù)據(jù)字段不在46-1500之間
有效MAC幀長度不在64-1518之間,無效幀就直接丟棄黄选,以太網(wǎng)不負(fù)責(zé)重傳
# 最小間隔
幀的最小間隔是9.6us,相當(dāng)于96bit的發(fā)送時間婶肩,一個站在檢測到總線空閑時办陷,再等待最小時間才能再次發(fā)送,為了讓剛剛收到的接受緩存來得及清理律歼,做好接受下一幀的準(zhǔn)備
網(wǎng)卡概述
應(yīng)用程序
協(xié)議棧
網(wǎng)卡驅(qū)動
擴(kuò)展總線接口
|\
緩沖區(qū) 用于臨時保存要收發(fā)的包的內(nèi)存空間
ROM 存放MAC地址 MAC 控制碰撞檢測民镜,重發(fā)等以太網(wǎng)收發(fā)操作的部分
PHY(MAU)發(fā)收和接受信號的電路
RJ-45接口 連接網(wǎng)絡(luò)的插座
|/ LAN網(wǎng)線
網(wǎng)卡的ROM保存了全世界唯一的MAC地址,在生產(chǎn)網(wǎng)卡時寫入
網(wǎng)卡中保存的MAC地址會由網(wǎng)卡驅(qū)動程序讀取并分配給MAC模塊
# 網(wǎng)卡發(fā)出去的包
報頭和起始幀分界符 + MAC頭 + IP頭 + TCP頭 + 數(shù)據(jù) + FCS
1 2 3 4 5 6
16 網(wǎng)卡負(fù)責(zé)的部分
23 IP負(fù)責(zé)的部分
4 TCP負(fù)責(zé)的部分
5 應(yīng)用程序生成
報頭(56bit):10101010比特序列险毁,發(fā)送方將數(shù)據(jù)信號 + 時鐘信號 發(fā)送制圈,報頭就是要加上用來測量時鐘信號的特殊信號
起始幀分界符(8bit SDF):表示包起始位置的標(biāo)記
56+8=64 最小64bit
# 將包發(fā)送出去有兩種方式
集線器的半雙工:某一時刻只能進(jìn)行發(fā)送或接受中的一種操作
交換機(jī)的全雙工:發(fā)送和接收同時進(jìn)行的方式
半雙工需要判斷網(wǎng)線中是否有其他信號再進(jìn)行傳輸,有的話需要等待畔况,MAC模塊從報頭開始將數(shù)字信號按每個比特轉(zhuǎn)換成電信號鲸鹦,再有PHY或叫MAU的信號收發(fā)模塊通過網(wǎng)線發(fā)送出去,數(shù)字信號轉(zhuǎn)換成電信號的速率就叫做網(wǎng)絡(luò)的傳輸速率跷跪,10Mbit/s.
以太網(wǎng)的規(guī)格是不超過100米馋嗜,發(fā)生錯誤TCP會搞定,因此不必進(jìn)行錯誤檢測吵瞻,當(dāng)半雙工模式發(fā)生碰撞葛菇,為了通知其他設(shè)備當(dāng)前線路出現(xiàn)了碰撞,會發(fā)送一段時間的阻塞信號橡羞,然后所有的發(fā)送操作會全部終止眯停。等待時間是根據(jù)MAC地址生成的隨機(jī)數(shù),重試再次發(fā)生碰撞就將等待時間延長一倍卿泽,最多重試10次就會發(fā)送錯誤
交換機(jī)只將特定的包轉(zhuǎn)發(fā)到特定MAC地址的設(shè)備連接的端口佩番,其他空閑的端口可以傳輸其他包,而集線器會將輸入信號廣播到所有端口问顷,可能會發(fā)生碰撞稻励,無法同時傳輸多路信號,從設(shè)備整體轉(zhuǎn)發(fā)能力看覆致,交換機(jī)高于集線器
網(wǎng)卡接收包流程
使用集線器的半雙工模式以太網(wǎng)侄旬,一臺設(shè)備發(fā)送的信號會達(dá)到集線器上所有設(shè)備,信號開頭是報頭煌妈,通過報頭波形時鐘同步儡羔,遇到起始幀分界符將后面的信號轉(zhuǎn)換為數(shù)字信息宣羊。
PHY-》轉(zhuǎn)成通用格式給MAC模塊,將信號轉(zhuǎn)成數(shù)字信號汰蜘,放到緩沖區(qū)仇冯,末尾還要檢查FCS,接下來看MAC頭部中接收方MAC地址與網(wǎng)卡在初始化時分配給自己MAC地址是否相同族操,不是就丟棄苛坚,是就放入緩沖區(qū)。通知計算機(jī)的操作是中斷色难,網(wǎng)卡向擴(kuò)展總線的中斷信號發(fā)送信號泼舱,該信號通過中斷控制器連接到CPU,當(dāng)產(chǎn)生中斷信號枷莉,CPU會掛起正在處理的任務(wù)娇昙,切換到OS的中斷處理程序,調(diào)用網(wǎng)卡驅(qū)動笤妙,控制網(wǎng)卡執(zhí)行接受操作冒掌。
網(wǎng)卡驅(qū)動被中斷調(diào)用后,從網(wǎng)卡緩沖區(qū)中取出收到的包蹲盘,通過MAC頭部的以太網(wǎng)類型判斷協(xié)議的類型股毫,0800代表IP協(xié)議,交給TCP/IP協(xié)議棧辜限,809B表示AppleTalk協(xié)議皇拣,交給AppleTalk協(xié)議棧。
IP模塊檢查IP頭部是否是網(wǎng)卡的ip,不是說明發(fā)生了錯誤薄嫡,不負(fù)責(zé)轉(zhuǎn)發(fā)氧急,正確就接受。毫深,如果接受到的包是分片的吩坝,IP模塊還要把包還原成原始包。交給TCP模塊
TCP模塊根據(jù)IP頭部的接收方和發(fā)送方IP哑蔫,以及端口號來查找對應(yīng)的套接字钉寝,再根據(jù)套接字記錄的通信狀態(tài),執(zhí)行相應(yīng)的操作闸迷。如果包的內(nèi)容是應(yīng)用程序數(shù)據(jù)嵌纲,返回確認(rèn)接手的包,并將數(shù)據(jù)放入緩沖區(qū)腥沽,等待應(yīng)用程序讀取逮走,如果是建立或斷開連接的控制包,返回相應(yīng)的響應(yīng)控制包今阳,告知應(yīng)用程序建立和斷開連接的操作狀態(tài)师溅。
擴(kuò)展以太網(wǎng)
- 距離擴(kuò)展:主機(jī)使用光纖對光纖調(diào)制解調(diào)器連接到集線器
- 數(shù)量擴(kuò)展:集線器級聯(lián)茅信,擴(kuò)大了局域網(wǎng)的覆蓋范圍,但是碰撞域增加了墓臭,總吞吐量沒有提高
- 數(shù)據(jù)鏈路層上擴(kuò)展:使用網(wǎng)橋
網(wǎng)橋工作在數(shù)據(jù)鏈路層蘸鲸,根據(jù)MAC幀的目的地址對收到的幀進(jìn)行轉(zhuǎn)發(fā),網(wǎng)橋具有過濾功能窿锉,當(dāng)收到一個幀時酌摇,并不是向所有接口進(jìn)行轉(zhuǎn)發(fā),而是先檢查此幀的目的MAC地址嗡载,再確定將該幀轉(zhuǎn)發(fā)到那一個接口
網(wǎng)橋內(nèi)部會維護(hù)一個站表(MAC表)妙痹,保存了站MAC地址與接口的對應(yīng)關(guān)系
優(yōu)點: 過濾了通信量,擴(kuò)大了物理范圍鼻疮,提高了可靠性,可以互聯(lián)不同的物理層琳轿,不同速率的局域網(wǎng)
缺點:轉(zhuǎn)發(fā)增加了時延判沟,MAC子層無流量控制功能,具有不同MAC子層的網(wǎng)段橋接在一起時延更大崭篡,只適用于用戶不太多的情況挪哄,否則會因為船舶過多的廣播信息而產(chǎn)生網(wǎng)絡(luò)組賽,廣播風(fēng)暴
# 透明網(wǎng)橋
透明是指局域網(wǎng)上的站點并不知道所發(fā)送的幀經(jīng)過那幾個網(wǎng)橋琉闪,網(wǎng)橋?qū)Ω髡緛碚f是不可見的
高速以太網(wǎng)
速率達(dá)到或超過100Mb/s的以太網(wǎng)稱為高速以太網(wǎng)
在雙絞線上傳送100Mb/s基帶信號的星型拓?fù)湟蕴W(wǎng)迹炼,使用CSMA/CD協(xié)議,100BASE-T以太網(wǎng)稱為快速以太網(wǎng)
特點:在全雙工方式下無沖突產(chǎn)生 不適用CSMA/CD協(xié)議
MAC幀格式仍是802.3標(biāo)準(zhǔn)
保持最短幀長度不變颠毙,將網(wǎng)段的最大線纜長度減小到100m
幀間間隔時間由9.6改為0.96us
- 吉比特以太網(wǎng):1000BASE-T 1Gb/s下全雙工和半雙工兩種方式工作
- 全雙工可以同時進(jìn)行發(fā)送和接受操作斯入,使用雙絞線,發(fā)送接收各自獨(dú)立蛀蜜,信號不會發(fā)生碰撞刻两,比半雙工模式更快
- 10吉比特以太網(wǎng):使用光纖作為傳輸介質(zhì),制工作在全雙工當(dāng)時滴某,不用CSMA/CD協(xié)議
以太網(wǎng)從10Mb/s - 10Gb/s證明以太網(wǎng)是可擴(kuò)展的磅摹,靈活的(多種傳輸媒體,全/半雙工霎奢,共享/交換)户誓,易于安裝,靈活性好
覆蓋的地理范圍擴(kuò)展到了城域網(wǎng)和廣域網(wǎng)幕侠,正嘗試將以太網(wǎng)作為寬帶接入
以太網(wǎng)提供了雙向的寬帶通信帝美,用戶可以根據(jù)對寬帶的需求進(jìn)行寬帶升級,中間不再進(jìn)行幀格式轉(zhuǎn)換橙依,提高了傳輸效率和傳輸成本
網(wǎng)絡(luò)層
網(wǎng)絡(luò)層提供的服務(wù)
- 網(wǎng)絡(luò)層負(fù)責(zé)在不同的網(wǎng)絡(luò)之間(基于數(shù)據(jù)包的IP地址)盡力轉(zhuǎn)發(fā)數(shù)據(jù)包证舟,不負(fù)責(zé)丟包重傳和接受順序硕旗,類似于寄快遞,一個人往其他地方寄快遞女责,每個快遞有不同的路線漆枚,可能后發(fā)先到了,也可能丟件了抵知,但網(wǎng)絡(luò)層只管發(fā)快遞
- 數(shù)據(jù)包在internet中傳輸時墙基,既有局域網(wǎng),又有廣域網(wǎng)刷喜,還有光纖残制,銅線,無線掖疮,還有不同的協(xié)議初茶,這就是internet的復(fù)雜之處
- 路由器是三層設(shè)備:能看到網(wǎng)絡(luò)層的IP地址來選擇路徑進(jìn)行包的轉(zhuǎn)發(fā)
網(wǎng)絡(luò)設(shè)備
- 互聯(lián)網(wǎng)中互聯(lián)的中間設(shè)備稱為中間系統(tǒng)或中繼(relay)系統(tǒng)
- 物理層中的中間設(shè)備:轉(zhuǎn)發(fā)器(repeater);類似于集線器
- 鏈路層:網(wǎng)橋或橋接器(bridge)
- 集線器:在子網(wǎng)中的以太協(xié)議將包傳輸?shù)较乱粋€路由
- 網(wǎng)絡(luò)層:路由器(router)浊闪,根據(jù)路由地址將網(wǎng)絡(luò)包傳輸?shù)较乱粋€路由
- 傳輸層/應(yīng)用層:網(wǎng)關(guān)器(gateway)恼布,網(wǎng)關(guān)就是路由器接口的地址,一般是本網(wǎng)段的第一個地址搁宾,計算機(jī)如果不配網(wǎng)關(guān)折汞,他不知道怎么往外走,路由器不配網(wǎng)關(guān)盖腿,路由器不知道怎么轉(zhuǎn)發(fā)
網(wǎng)絡(luò)設(shè)備與OSI模型的關(guān)系
10.0.0.0 10.0.0.1 11.0.0.1 11.0.0.2 12.0.0.1 12.0.0.0
255.0.0.0 255.0.0.0 255.0.0.0 255.0.0.0 255.255.0.0 255.255.0.0
MAC2 MAC3
hub1------switch1——————————router0 ———————————— router1 —————————— switch2————————pc3
| | \ ppp協(xié)議連接 /
pc4 pc0 pc1 pc2
10.0.0.2 10.0.0.3 10.0.0.4 12.0.0.2 12.0.0.3
255.0.0.0 255.0.0.0 255.0.0.0 255.255.0.0 255.255.0.0
10.0.0.1 10.0.0.1 10.0.0.1 網(wǎng)關(guān) 12.0.0.1 12.0.0.1
MAC1 MAC4
# router0 配置路由表
ip route 12.0.0.0 255.255.0.0 11.0.0.2 # 通過網(wǎng)關(guān)11.0.0.2轉(zhuǎn)發(fā)到下一跳12.0.0.0這個網(wǎng)段
# router1 配置路由表
ip route 10.0.0.0 255.0.0.0 11.0.0.1
# 從PC4到PC3的數(shù)據(jù)傳輸流程
從上往下 從上往下
應(yīng)用層 | | 應(yīng)用層
表示層 |-> 文件 文件 <-| 表示層
會話層 | | 會話層
傳輸層 數(shù)據(jù)段 3 2 1 1 傳輸層
網(wǎng)絡(luò)層 數(shù)據(jù)包 【1+ip4+ip3】 => 1+ip4+ip3 => 路由器 1+ip4+ip3=> 路由器 1+ip+ip3>網(wǎng)絡(luò)層
第一個數(shù)據(jù)包 源IP+目標(biāo)IP 鏈路層
鏈路層 數(shù)據(jù)幀 【FCS+1+IP4+IP3+MAC1+MAC2】 => | |1+ip4+ip3+FF(PPP協(xié)議)| |1+ip4+ip3+M3+M4>鏈
加上源MAC爽待,目標(biāo)MAC
物理層 比特流 _|-|_ => 集線器 => _|-|_ 交換機(jī) _|-|_=> | | _|-|_=> | | _|-|_=> 物理層
原樣發(fā)送 存儲轉(zhuǎn)發(fā)到路由器的對應(yīng)網(wǎng)關(guān)上
# 發(fā)送端(封裝)
1.應(yīng)用層準(zhǔn)備要傳輸?shù)臄?shù)據(jù)
2.傳輸層把文件進(jìn)行分段并編號(數(shù)據(jù)段)
3.網(wǎng)絡(luò)層把傳輸層的每一個數(shù)據(jù)包都加源IP地址和目標(biāo)IP地址(數(shù)據(jù)包)
4.數(shù)據(jù)鏈路層把每個數(shù)據(jù)加上MAC地址(數(shù)據(jù)幀)使用自己的子網(wǎng)掩碼判斷自己和目標(biāo)地址分別在哪個網(wǎng)段
4.1 在同一個網(wǎng)段 ,通過ARP協(xié)議廣播的方式得到目標(biāo)IP地址的MAC地址翩腐,然后封裝出一個數(shù)據(jù)幀
4.2 不在同一個網(wǎng)段 (與運(yùn)算)鸟款,通過ARP協(xié)議廣播得到路由器(網(wǎng)關(guān))的MAC地址,然后把數(shù)據(jù)通過交換機(jī)發(fā)送到路由器M2栗菜,由于M2和M3是點對點通信欠雌,無其他主機(jī),因此他們之間的MAC地址就是FF
5.物理層把接收到的數(shù)據(jù)幀變成比特流
# 接收端(解封)
1.交換機(jī)switch1接收到比特流疙筹,根據(jù)數(shù)據(jù)的MAC地址對其進(jìn)行轉(zhuǎn)發(fā)
2.路由器0獲取到交換機(jī)的數(shù)據(jù)包富俄,能夠識別其中的IP地址,根據(jù)路由表選擇出口而咆,但無法識別數(shù)據(jù)的內(nèi)容
3.路由器0與1是點對點通信霍比,PPP協(xié)議
4.pc3收到bit流后,鏈路層發(fā)現(xiàn)MAC地址是自己暴备,就去掉MAC地址給網(wǎng)絡(luò)層悠瞬,網(wǎng)絡(luò)層去掉IP地址給傳輸層,傳輸層把數(shù)據(jù)給應(yīng)用層,應(yīng)用層把各個數(shù)據(jù)拼接起來組成傳遞的源文件
# 路由器/交換機(jī)/集線器是否會中毒
不會浅妆,路由器無法識別數(shù)據(jù)內(nèi)容望迎,只負(fù)責(zé)傳遞信息,但是病毒會占用網(wǎng)絡(luò)流量凌外,影響網(wǎng)絡(luò)設(shè)備
TCP/ IP協(xié)議棧
應(yīng)用程序 網(wǎng)絡(luò)應(yīng)用程序(瀏覽器辩尊,郵件客戶端,web服務(wù)端康辑,郵件服務(wù)器)
Socket庫 解析器
------------------------------------
OS 協(xié)議棧
TCP udp
ICMP IP(傳送網(wǎng)絡(luò)包摄欲,確定路由) ARP
------------------------------------
驅(qū)動程序 網(wǎng)卡驅(qū)動程序(控制網(wǎng)卡)
-----------------------------
硬件 網(wǎng)卡
從上到下逐級委派工作
瀏覽器,郵件等一般應(yīng)用程序收發(fā)數(shù)據(jù)時用TCP
DNS查詢等收發(fā)較短的控制數(shù)據(jù)時用UDP
.
/|\ ICMP+IGMP
| IP
| ARP
IP協(xié)議:把數(shù)據(jù)包從一個網(wǎng)段傳到另一個網(wǎng)段疮薇,選路胸墙,控制網(wǎng)絡(luò)包收發(fā)操作的部分
ICMP用于告知網(wǎng)絡(luò)包傳輸過程中產(chǎn)生的錯誤以及各種控制消息
arp根據(jù)ip地址查詢相應(yīng)的以太網(wǎng)MAC地址
arp協(xié)議為IP提供服務(wù),IP協(xié)議為ICMP/ICMG 提供服務(wù)
arp 協(xié)議
Address Resolution Protocol
將IP地址通過廣播(本網(wǎng)段按咒,不通過路由器)迟隅,目標(biāo)地址FF-FF-FF-FF-FF-FF,解析目標(biāo)IP的MAC地址励七,可以通過arp -a 進(jìn)行查看緩存的MAC地址
arp協(xié)議解決同一個局域網(wǎng)上主機(jī)或路由器的IP地址與MAC地址的映射關(guān)系玻淑,如果尋找的主機(jī)不在同一個局域網(wǎng)上,就要通過ARP找位于本局域網(wǎng)某個路由器的MAC地址呀伙,把分組發(fā)給這個路由器,由這個路由器發(fā)給下一個網(wǎng)絡(luò)
IP到MAC地址的解析是自動的添坊,用戶對解析過程不感知
只要主機(jī)或路由器要和本網(wǎng)路上另一個已知IP的主機(jī)或路由器進(jìn)行通信剿另,ARP就會自動將該IP地址解析為鏈路層需要的MAC地址
arp -a # 查看arp協(xié)議靜態(tài)或動態(tài)緩存的MAC地址表
ARP緩存會記錄IP與MAC的映射關(guān)系記錄,減少網(wǎng)絡(luò)中的ARP包
Interface:10.10.1.16 --- 0x2
Interface Address Physical Address Type
10.10.1.43 00-80-c8-2d-82-ea dynamic
為了防止ARP緩存里的記錄和現(xiàn)實中有差異贬蛙,幾分鐘緩存的記錄就會被清理一次
arp -s 192.168.80.100 00-0c-29-f9-98-0c # 靜態(tài)綁定IP與MAC地址雨女,不在動態(tài)獲取,防止arp欺騙
# 使用ARP的幾種情況
1. 發(fā)送方式主機(jī)阳准,要把IP數(shù)據(jù)包發(fā)送給本網(wǎng)段的一個主機(jī)氛堕,由ARP找到目標(biāo)主機(jī)的MAC地址
2. 發(fā)送方式主機(jī),要把IP數(shù)據(jù)包發(fā)給另一個網(wǎng)絡(luò)的主機(jī)野蝇,由ARP找到本網(wǎng)絡(luò)上一個路由器的MAC地址讼稚,剩下的有路由器來完成
3. 發(fā)送方是路由器,IP數(shù)據(jù)包發(fā)給一個主機(jī)绕沈,用ARP找到該主機(jī)的MAC地址
4. 發(fā)送方是路由器锐想,要把IP數(shù)據(jù)包發(fā)給另一個網(wǎng)絡(luò)的主機(jī),由ARP找到本網(wǎng)絡(luò)上一個路由器的MAC地址乍狐,剩下的有路由器來完成
# ARP欺騙
如果將arp緩存的ip對應(yīng)的MAC地址改為錯誤的地址赠摇,那這兩臺主機(jī)將無法通信,可以通過arp -s來靜態(tài)綁定MAC地址,防止arp欺騙
# arp數(shù)據(jù)包不帶網(wǎng)絡(luò)層的首部藕帜,因為他是給IP層提供支持的烫罩,IP層才有首部
ICMP 協(xié)議
- 網(wǎng)際控制報文協(xié)議(INTERNET CONTROL MESSAGE PROTOCOL):為了提高IP數(shù)據(jù)報交付成功的機(jī)會,網(wǎng)絡(luò)層使用了ICMP洽故,允許主機(jī)和路由器報告差錯情況和提供異常的有關(guān)報告
- ICMP為IP數(shù)據(jù)報加上首部贝攒,組成ICMP數(shù)據(jù)包發(fā)出去
ping TTL 生存時間:每過一個路由器就減一,防止數(shù)據(jù)包無限循環(huán) 64->63->62
初始值: linux:64 windows:128 unix:255
參數(shù):-t 一直ping
-l 200:發(fā)大包收津,指定發(fā)數(shù)據(jù)包的大小
ping 8.8.8.8 -i 1 # 設(shè)置ttl初始值為1饿这,那么在經(jīng)過第一個路由器時,就會TTL耗盡減到0返回 replay from
211.90.16.113:TTL expired in transit # 211.90.16.113 是第一個經(jīng)過的路由器
# PING命令排除網(wǎng)絡(luò)故障:局域網(wǎng)中多臺主機(jī) ping -t 如果同一時間丟包撞秋,說明電信網(wǎng)問題
請求超時: 包到目的地了长捧,但回來的路由器不知道怎么轉(zhuǎn)發(fā)
目標(biāo)主機(jī)不可到達(dá): 去的路上的路由器不知道怎么轉(zhuǎn)發(fā)
# QQ能登上,但網(wǎng)頁打不開吻贿,說明網(wǎng)絡(luò)層沒問題串结,是域名解析出現(xiàn)了問題
pathping 能提供數(shù)據(jù)包的路徑,能發(fā)現(xiàn)在哪一個路由器上出現(xiàn)了問題
traceret 10.7.1.53 # 用tracerert 也能跟蹤數(shù)據(jù)包的發(fā)送路徑
IGMP 協(xié)議
- 分為點到點通信舅列,廣播通信:目標(biāo)IP地址全是255肌割,目標(biāo)MAC地址全是F,也就是全發(fā)1.廣播不能跨越路由器
- 組播=多播帐要,分組廣播把敞,一般用于直播,網(wǎng)絡(luò)會議榨惠,節(jié)省帶寬奋早,例如教語文的老師發(fā)送多播給學(xué)語文的20同學(xué),教數(shù)學(xué)的發(fā)送多播給學(xué)數(shù)學(xué)的20個學(xué)生赠橙,既不用一個一個發(fā)耽装,也不用廣播全發(fā)一樣的
- IGMP協(xié)議會周期性的掃描本網(wǎng)段中的主機(jī)有沒有在訪問多播數(shù)據(jù)包,如果都不訪問了期揪,會通知上層路由器不再發(fā)包
IP協(xié)議
包收發(fā)過程
TCP頭部 數(shù)據(jù)塊 TCP模塊
|/ 1發(fā)送 |\ 4接受
MAC頭部 IP頭部 TCP頭部 數(shù)據(jù)塊
|/ 2發(fā)送 |\ 3接收
|-|_|---|_|--- 網(wǎng)卡(以太網(wǎng))
起點是TCP模塊委托IP模塊發(fā)送包掉奄,在數(shù)據(jù)前加上TCP頭部發(fā)給 ip模塊,IP模塊收到委托凤薛,在前面加上控制頭部信息的頭部姓建,即IP頭部,MAC頭部缤苫,交給網(wǎng)絡(luò)硬件即網(wǎng)卡引瀑,0和1的數(shù)字信息,網(wǎng)卡將數(shù)字信息轉(zhuǎn)換成電信號或光信號榨馁,通過網(wǎng)線(光纖)傳出去憨栽,再達(dá)到集線器,路由器,發(fā)送到接收方屑柔。接收方的網(wǎng)卡將光電信號轉(zhuǎn)成數(shù)字信號屡萤,給IP模塊,將TCP頭部后加上數(shù)據(jù)塊就交給TCP模塊掸宛。
IP模塊的職責(zé)是將委托的東西打包送到對方手里死陆,不關(guān)心內(nèi)容
# IP地址
IP地址實際上不是分配給計算機(jī)的,而是分配給計算機(jī)上的網(wǎng)卡
# MAC地址
將MAC地址查出放在IP頭部之前是有IP模塊完成唧瘾,雖然MAC頭部是以太網(wǎng)需要的部分措译,不屬于IP模塊的職責(zé),但是如果在網(wǎng)卡收到包之前饰序,IP模塊完成了整個打包工作领虹,那么網(wǎng)卡只需要將打好的包發(fā)出去就可以了,同一塊網(wǎng)卡就可以支持各種類型的包求豫。
IP 數(shù)據(jù)包
- 一個IP數(shù)據(jù)包由首部和數(shù)據(jù)構(gòu)成塌衰,首部的前一部分是固定長度,共20個字節(jié)蝠嘉,是必須具有的最疆。在首部的固定部分后面是一些可選字段,長度可變
首部 + 數(shù)據(jù)部分 -> IP數(shù)據(jù)報
0 4 8 16 19 24 31 每行32bit蚤告,4字節(jié)努酸,5行20字節(jié)
版本 |首部長度 | 服務(wù)類型 | 總長度 | /|\
標(biāo)識 |標(biāo)志 | 片偏移 | |
生存時間 | 協(xié)議號 | 首部檢驗和 | 首部
原地址 | |
目的地址 | |
可選字段(長度可變) | 填充 | \|/
數(shù)據(jù)部份 |
版本:用來表示TCP/IP協(xié)議的版本 v4或v6 IP協(xié)議的版本號
首部長度:首部長度 = 首部(20字節(jié))+ 可變部分(一般為0)
服務(wù)類型:表示包傳輸?shù)膬?yōu)先級,流量緩急的標(biāo)記位 著急的包馬上傳 不著急的排隊傳 默認(rèn)0
總長度:整個數(shù)據(jù)包長度最大有 2^16-1=65535 個字節(jié) 而數(shù)據(jù)鏈路層最大支持1500字節(jié)的數(shù)據(jù)包 因此數(shù)據(jù)部分最大是1480字節(jié) 如果超過就需要分片
標(biāo)識(ID號):數(shù)據(jù)包分片以后能根據(jù)標(biāo)識組裝成一個完整的數(shù)據(jù)包杜恰,包的序列號蚊逢,如果一個包被IP分片,所有分片都有相同的ID
標(biāo)志:占3位箫章,只有兩位有意義,最低位MF(MORE FRAGMENT):1表示還有分片 0表示最后一個分片镜会。中間以為DF(do not fragment) 為0時才允許分片 檬寂,如果不分片都是010,000表示最后一個分片包
生存時間:TTL 包的生存時間戳表,每經(jīng)過一個路由器會減1桶至,減到0時包會被丟棄,防止網(wǎng)絡(luò)出現(xiàn)回環(huán)時永遠(yuǎn)在網(wǎng)絡(luò)中打轉(zhuǎn)匾旭。
協(xié)議號:協(xié)議的類型镣屹,指出應(yīng)將數(shù)據(jù)部分交給哪一個進(jìn)程
傳輸層 TCP(6) UDP (17 0x11 域名服務(wù)器DNS用的協(xié)議)
網(wǎng)絡(luò)層 協(xié)議號 ICMP(1) IGMP(2) OSPF(89)IPV6(41)
首部檢驗和:發(fā)送端將數(shù)據(jù)報首部按16位去分,將分好的數(shù)據(jù)相加取反碼得到檢驗和存入首部檢驗和价涝,接收端將檢驗和和各16位的數(shù)據(jù)相加再取反碼女蜈,如果結(jié)果是0就保留,否則就丟棄
原地址,目標(biāo)地址:32位二進(jìn)制 255.255.255.255 2^8-1=255 最大十進(jìn)制255
可選字段:很少使用伪窖,填充是可變部分不夠32字節(jié)就去填充
# 數(shù)據(jù)包分片
網(wǎng)絡(luò)層的數(shù)據(jù)包超過1500字節(jié)逸寓,鏈路層就會把數(shù)據(jù)包進(jìn)行分片,接受方的網(wǎng)絡(luò)層再把這些子包合成完整的大包
淚滴攻擊:傳送大包又把某個子包干掉覆山,讓接收端一直等待接受包竹伸,占用網(wǎng)絡(luò)資源
需要分片的數(shù)據(jù)包: 首部+3800字節(jié)
首部1+字節(jié)0-字節(jié)1399 + 首部2+字節(jié)1400-2799 + 首部3+2800-3799
報片1 片偏移=0/8=0 報片2 偏移=1400/8=175 報片3 偏移=2800/8=350
# 多個ip包形成一個ICMP包
路由器
包轉(zhuǎn)發(fā)模塊 端口模塊
ADSL ------------------- 互聯(lián)網(wǎng)
路由表 FTTH
通信線路
無線局域網(wǎng)
以太網(wǎng) ------------------- 集線器
| | |
pc pc pc
端口模塊: 不同的路由器端口模塊有所不同,錄入支持ADSL的路由器簇宽,支持FTTP的路由器勋篓,支持專線等 包轉(zhuǎn)發(fā)模塊:根據(jù)路由表中的記錄判斷包的轉(zhuǎn)發(fā)目標(biāo)
以太網(wǎng)端口與計算機(jī)的網(wǎng)卡差不多,也是由RJ-45接口魏割,MAU(PHY)譬嚣,MAC和內(nèi)存組成。
路由器的轉(zhuǎn)發(fā)模塊想象成IP模塊见妒,端口模塊想象成網(wǎng)卡孤荣,轉(zhuǎn)發(fā)模塊根據(jù)IP頭部的IP地址,將包轉(zhuǎn)移到對應(yīng)端口须揣,委托端口模塊將包發(fā)送出去
路由表
route print
目標(biāo)地址 子網(wǎng)掩碼 網(wǎng)關(guān) 端口 躍點數(shù)
1Network destination 2Netmask 3Gatewany 4Interface 5 Metric
192.168.1.0 255.255.255.0 10.10.1.2 10.10.1.16 2
0.0.0.0 0.0.0.0
默認(rèn)網(wǎng)關(guān) 其他行都匹配不到盐股,默認(rèn)匹配這一行
1,2 表示網(wǎng)絡(luò)包的最終目的地
3 轉(zhuǎn)發(fā)路由器的IP地址,如果與右邊的接口一致耻卡,表示不通過路由器轉(zhuǎn)發(fā)疯汁,直接向目的IP發(fā)送包
4 發(fā)送包的網(wǎng)絡(luò)接口,匹配到本條路由時卵酪,使用改IP地址對應(yīng)的網(wǎng)絡(luò)接口向網(wǎng)管的路由器發(fā)包
5 通過這條路由傳輸包的成本幌蚊,越小說明距離越近
這一行表示要向192.168.1.0地址發(fā)包,可以將包發(fā)送給10.10.1.2的路由器進(jìn)行轉(zhuǎn)發(fā)溃卡,是由10.10.16這個端口發(fā)出的
# 網(wǎng)關(guān)在TCP/IP中就是路由器的意思
網(wǎng)絡(luò)號 + 主機(jī)號溢豆,路由器會忽略主機(jī)號部分,只匹配網(wǎng)絡(luò)號瘸羡,相當(dāng)于路由器在轉(zhuǎn)發(fā)包的時候只看接收方屬于哪個區(qū)漩仙,A區(qū)發(fā)往這一邊,B區(qū)發(fā)往另一邊
子網(wǎng)掩碼是255.255.255.255犹赖,這樣队他,主機(jī)號全部為0可以表示一個子網(wǎng),主機(jī)號部分不全部為0可以表示某一臺計算機(jī)
- 動態(tài)路由:路由器使用IP協(xié)議(RIP,OSPF)自己學(xué)習(xí)該怎么走
- RIP協(xié)議:路由器會周期性的向外廣播告訴下一個路由器該怎么跳來更新路由表峻村,最終路由器會選擇到目標(biāo)地址跳數(shù)少的路徑麸折,每經(jīng)過一個路由器就是一跳,30s更新一次粘昨,最大15跳垢啼,OSP協(xié)議也是用來選路窜锯,不過是以帶寬作為選路依據(jù)
router rip # 開啟rip協(xié)議
network 192.168.1.0
network 192.168.2.0
network 192.168.7.0
network 192.168.0.0
- 靜態(tài)路由:管理員告訴他怎么走,靜態(tài)路由器需要管理員告訴路由器所有沒有直連的網(wǎng)絡(luò)下一跳給誰膊夹,缺點是只適用于小網(wǎng)絡(luò)衬浑,不能自動調(diào)整路由
- 網(wǎng)絡(luò)暢通的條件
數(shù)據(jù)包有來有回
# ping 不通的兩個現(xiàn)象
目標(biāo)地址不可達(dá):傳送過程中的某個路由器不知道下一跳怎么走
請求超時:數(shù)據(jù)包到了,沿途的路由器不知道怎么走
192.168.0.0/24 172.16.0.0/24 172.16.1.0/24 172.16.2.0/24 192.168.1.0/24
1 2 1 2 1 2
pc0———switch0————router0————————router1———————————router2————————————router3——————switch1——————pc1
192.168.0.1 172.16.0.2 172.16.1.2 172.16.2.2
172.16.0.1 172.16.1.1 172.16.2.1
有兩個局域網(wǎng) PC0和PC1要相互連通放刨,他們要配網(wǎng)關(guān)工秩,并且沿途的每個路由器都要知道下一跳該怎么走
計算機(jī)如果沒配網(wǎng)關(guān),ping路由器可以ping通进统,說明他們在一個網(wǎng)段助币,但是發(fā)包時計算機(jī)就不知道怎么去路由器了
tracert 192.168.1.2
192.168.0.1 pc0的網(wǎng)關(guān),也就是rt0的左端口地址
172.16.0.2 rt0到rt2需要知道下一跳是rt1左端口
ip route 192.168.1.0 255.255.255.0 172.16.0.2 rt1左
ip route 192.168.0.0 255.255.255.0 172.16.0.1 rt1右
172.16.1.2 rt1到rt3需要知道下一跳是rt2左端口
去:ip route 192.168.1.0 255.255.255.0 172.16.1.2 rt2左
回:ip route 192.168.0.0 255.255.255.0 172.16.1.1 rt2右
172.16.2.2 rt2到sw1需要知道下一跳是rt3左端口
去:ip route 192.168.1.0 255.255.255.0 172.16.2.2 rt3左
回:ip route 192.168.0.0 255.255.255.0 172.16.2.1 rt3右
192.168.1.2 到達(dá)pc1
# 靜態(tài)路由器需要管理員告訴路由器所有沒有直連的網(wǎng)絡(luò)下一跳給誰螟碎,路由器兩端的ip可以互通
ip route 172.16.2.1 255.255.255.0 172.16.0.2 # router0因為沒有和router2直連眉菱,所有pc0要ping通router2,需要在router0上配置路由表掉分,告訴他到router2的地址的下一跳是讓rt1左俭缓,172.16.0.2,不然就算pc0能ping通pc1酥郭,也無法ping通路徑上的路由器2
子網(wǎng)掩碼
- 幫助路由器判斷對應(yīng)主機(jī)是否在同一個網(wǎng)段中
- 網(wǎng)絡(luò)地址唯一指定了每個網(wǎng)絡(luò)华坦,同一個網(wǎng)絡(luò)中的計算機(jī)共享網(wǎng)絡(luò)路徑
# 子網(wǎng)掩碼將一個IP地址劃分為網(wǎng)絡(luò)地址和主機(jī)地址 網(wǎng)絡(luò)號+主機(jī)號
主機(jī)號全為0表示整個子網(wǎng)
主機(jī)號全為1表示向子網(wǎng)上所有設(shè)備發(fā)包,廣播
172.16.122.204/255.255.0.0 -> 網(wǎng)段是172.16.0.0
計算機(jī)和其他計算機(jī)通信時不从,先利用子網(wǎng)掩碼和IP地址判斷目標(biāo)地址是否和自己在同一網(wǎng)段惜姐,如果在同一網(wǎng)段,就是用目標(biāo)地址MAC地址封裝成數(shù)據(jù)幀椿息,并發(fā)給目標(biāo)地址歹袁。如果不在同一網(wǎng)段,就是用網(wǎng)關(guān)的MAC地址封裝成數(shù)據(jù)幀寝优,并發(fā)給路由器即網(wǎng)關(guān)条舔。
# A類 255.0.0.0 B類 255.255.0.0 C類 255.255.255.0 D類 多播地址 E 類 保留
# 特殊地質(zhì)
主機(jī)號
127.0.0.1 本地環(huán)回地址
169.254.0.0
10.0.0.0 172.16.0.0-172.31.0.0 192.168.0.0-192.168.255.0 保留的私有地址
子網(wǎng)劃分
兩個部門 每個部門100臺,通過交換機(jī)連接乏矾,組成局域網(wǎng)孟抗。通過路由器連接internet,使用192.168.0.0 C類網(wǎng)絡(luò)
# 一個網(wǎng)段
192.168.0.1 192.168.0.2
255.255.255.0 255.255.255.0
192.168.0.1
internet——————————router————————————————————switch————————pc 192.168.0.0 255.255.255.0
路由器可以使用該網(wǎng)段任何可用的地址妻熊,但為了避免計算機(jī)和路由器沖突,一般將路由器設(shè)置為該網(wǎng)段的第一個可用地址或最后一個可用地址
# 兩個網(wǎng)段
A 192 168 0 0|0000000
B 192 168 0 1|0000000
子網(wǎng)掩碼 11111111 11111111 11111111 1|0000000 (1表示該位可用仑最,0表示該位不可用)
子網(wǎng)掩碼 255 255 255 128
0——127 A子網(wǎng)第8位為0 128--255 B子網(wǎng)第8位為1扔役,每個子網(wǎng)是原來的1/2,子網(wǎng)掩碼往后退一位
192.168.0.1 192.168.0.129 192.168.0.130
255.255.255.128 255.255.255.128 255.255.255.128
192.168.0.129 網(wǎng)關(guān)
internet————router1——————A——————router2——————————————————B————pc
192.168.0.0 192.168.0.128 網(wǎng)段
255.255.255.128 255.255.255.128
# 4個子網(wǎng)
公司有4個部門 每個50臺
A 192 168 0 00|000000
B 192 168 0 01|000000
C 192 168 0 11|000000
D 192 168 0 11|000000
子網(wǎng)掩碼 255 255 255 11|00000
255 255 255 192
0-64 A 64-128 B 128-192 C 192-255 D 全1是廣播 所以63,127,191,254不選
# 8個子網(wǎng)
A 192 168 0 000|00000
B 001
C 010
D 011
E 100
F 101
G 110
子網(wǎng)掩碼 255 255 255 111|00000
255 255 255 224
0-32-64-96-128-160-192-224-255
每個子網(wǎng)是原來的1/2*1/2*1/2,子網(wǎng)掩碼往后移3位警医,乘幾次1/2亿胸,就往右移動幾位
路由器接受包流程
信號達(dá)到網(wǎng)線接口坯钦,PHY(MAU)和MAC模塊將信號轉(zhuǎn)為數(shù)字信息,通過包末尾FCS進(jìn)行奇偶校驗侈玄,沒問題再檢查MAC頭和接收方MAC地址婉刀,看是不是給自己的包,是就放入緩沖區(qū)序仙,否就丟棄這個包突颊。
# 查詢路由表確定輸出端口
接受包完成以后,路由器會丟棄MAC頭部潘悼,因為作用已經(jīng)完成律秃,再根據(jù)IP頭部進(jìn)行包轉(zhuǎn)發(fā),如果多行在路由表中被匹配到治唤,按照最長匹配原則進(jìn)行篩選棒动,長度也相同,按躍點低的進(jìn)行選擇
# 默認(rèn)路由
互聯(lián)網(wǎng)中的轉(zhuǎn)發(fā)目標(biāo)超過20萬個宾添,全部配置在路由表中不現(xiàn)實船惨,子網(wǎng)掩碼為0.0.0.0這一列天上默認(rèn)路由,優(yōu)先級最低缕陕,并且肯定能匹配到
# 包分片
路由表找到轉(zhuǎn)發(fā)目標(biāo)后粱锐,在將包交給輸出端口前還有工作要完成。首先要更新IP頭部中的TTL榄檬,進(jìn)行減一卜范,防止寶進(jìn)入死循環(huán)
路由器的端口并不止一種,當(dāng)輸出端口的最大包長度小于輸入端口的最大包長度時鹿榜,會使用IP協(xié)議的分片功能海雪,與TCP協(xié)議的分片不同,TCP的拆分操作時在數(shù)據(jù)裝到報之前進(jìn)行的舱殿,但是IP的分片是對一個完整的包再次進(jìn)行拆分的過程
輸出端口的 MTu =最大長度-頭部長度奥裸,當(dāng)MTU小于寶長度就要進(jìn)行分片
MAC頭 + IP頭 + TCP頭 + 數(shù)據(jù)
/ / \ \
MAC頭+IP頭+ TCP頭+數(shù)據(jù) Mac頭+IP+數(shù)據(jù)
兩種情況不允許分片:1.發(fā)送方應(yīng)用程序設(shè)置不允許分片 2.包已經(jīng)是分片后的包
# 發(fā)送
路由器判斷下一個轉(zhuǎn)發(fā)目標(biāo)的方法
如果路由表的網(wǎng)關(guān)列內(nèi)容為IP地址,則該地址是下一個轉(zhuǎn)發(fā)目標(biāo)
空沪袭,則IP頭中的接收方IP就是下一個轉(zhuǎn)發(fā)目標(biāo)
# 路由器和交換機(jī)的區(qū)別
給IP包加上MAC頭部湾宙,本質(zhì)上是將IP包裝進(jìn)以太網(wǎng)的數(shù)據(jù)部分中,IP協(xié)議本身沒有傳輸報的功能冈绊,因此包的實際傳輸要委托以太網(wǎng)進(jìn)行侠鳄,路由器基于IP設(shè)計,交換機(jī)基于以太網(wǎng)設(shè)計
IP(路由器)負(fù)責(zé)將包報送給通信對象這一過程
以太網(wǎng)(交換機(jī))負(fù)責(zé)將包傳輸?shù)较乱粋€路由器這一過程
附加功能
# 地址轉(zhuǎn)換
將共有地址沒分配的一部分拿出來規(guī)定只在內(nèi)網(wǎng)使用死宣,和其他公司重復(fù)也沒關(guān)系
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
地址端口對應(yīng)表
公有地址 端口號 私有地址 端口號
192.18.8.31 5436 10.10.1.1 1025
192.18.8.31 5437 10.10.1.2 1025
192.18.8.31 5438 10.10.1.3 2538
服務(wù)器 192.0.2.79 《----------------》 10.10.1.1/2/3 私有地址
路由器 198.18.8.31
接收方地址:端口號 發(fā)送方地址:端口號
192.0.2.79:80 10.10.1.1:1025 數(shù)據(jù) 《-----客戶端
|/
發(fā)往服務(wù)器 <-- 192.0.2.79:80 198.18.8.31:5436
來自服務(wù)器 --》192.0.2.79:80 198.18.8.31:5436
|/
10.10.1.1:1025 ---> 發(fā)往客戶端
對外只能使用一個公有地址的情況下伟恶,可以用不同的端口號區(qū)別內(nèi)網(wǎng)中的不同終端
從互聯(lián)網(wǎng)的一端看,實際的通信對象是地址轉(zhuǎn)換設(shè)備(路由器)
端口號是一個16比特的數(shù)值毅该,總共可以分配幾萬個端口博秫,因此如果用公有地址加上端口對應(yīng)一個私有地址潦牛,一個公有地址能有幾萬個地有地址,提高利用率
# 互聯(lián)網(wǎng)訪問內(nèi)網(wǎng)
之所以沒法從互聯(lián)網(wǎng)訪問內(nèi)網(wǎng)挡育,因為表里沒有對應(yīng)的記錄巴碗,只需要事先手動添加公私地址的記錄就可以了