- 網(wǎng)絡(luò)基本概念
- OSI網(wǎng)絡(luò)分層模型
- 網(wǎng)絡(luò)設(shè)備
- TCP/IP協(xié)議棧
一、網(wǎng)絡(luò)基本概念:
-
網(wǎng)絡(luò)應(yīng)用程序?qū)W(wǎng)絡(luò)的影響
- 批處理程序,無需人機(jī)交互,帶寬很重要
- 交互應(yīng)用程序键思,人機(jī)交互頻繁,響應(yīng)很重要
- 實(shí)時(shí)應(yīng)用程序甫贯,人與人的交互吼鳞,端到端的延時(shí)很重要
網(wǎng)絡(luò)的特征:速度、成本叫搁、安全性赔桌、可用性、可擴(kuò)展性渴逻、可靠性疾党、拓?fù)?/p>
-
網(wǎng)絡(luò)的物理拓?fù)洌好枋隽宋锢碓O(shè)備的布線方式
- 總線拓?fù)洌核性O(shè)備均可接收信號(hào)
- 環(huán)狀拓?fù)洌盒盘?hào)繞環(huán)傳輸、單一故障點(diǎn)
- 星型拓?fù)洌和ㄟ^中心點(diǎn)傳輸惨奕、單一故障點(diǎn)
- 網(wǎng)狀拓?fù)洌喝蒎e(cuò)能力強(qiáng)雪位、實(shí)施成本高
網(wǎng)絡(luò)的邏輯拓?fù)洌好枋隽诵畔⒃诰W(wǎng)絡(luò)中的流動(dòng)方式
二、OSI網(wǎng)絡(luò)分層模型:
- 網(wǎng)絡(luò)分層的意義:降低復(fù)雜性梨撞、標(biāo)準(zhǔn)化接口茧泪、簡(jiǎn)化模塊化設(shè)計(jì)、確保技術(shù)的互操作性聋袋、加快發(fā)展速度、簡(jiǎn)化教學(xué)
(一)OSI模型的七層結(jié)構(gòu):
- 物理層:為啟動(dòng)穴吹、維護(hù)以及關(guān)閉物理鏈路定義了電氣幽勒、機(jī)械、過程和功能規(guī)范港令,負(fù)責(zé)二進(jìn)制信息的傳輸
- 數(shù)據(jù)鏈路層:定義如何格式化數(shù)據(jù)以便進(jìn)行傳輸以及如何控制對(duì)數(shù)據(jù)的訪問啥容,支持錯(cuò)誤檢測(cè),用MAC地址訪問介質(zhì)
- 網(wǎng)絡(luò)層:路由數(shù)據(jù)包顷霹,支持邏輯尋址和路徑選擇咪惠,負(fù)責(zé)提供邏輯地址
- 傳輸層:可靠與不可靠的傳輸,錯(cuò)誤檢測(cè)和恢復(fù)淋淀,信息流控制來保障可靠性
- 會(huì)話層:建立遥昧、管理、終止應(yīng)用程序之間的會(huì)話,負(fù)責(zé)主機(jī)間的通信
- 表示層:構(gòu)建炭臭、格式化數(shù)據(jù)永脓,負(fù)責(zé)數(shù)據(jù)表示
- 應(yīng)用層:為應(yīng)用程序進(jìn)程提供網(wǎng)絡(luò)服務(wù),提供用戶身份驗(yàn)證
(二)數(shù)據(jù)的封裝鞋仍、解封常摧、對(duì)等通信
封裝:發(fā)送端數(shù)據(jù)從應(yīng)用層向下每經(jīng)過一層添加相應(yīng)的報(bào)頭,在數(shù)據(jù)鏈路層同時(shí)增加報(bào)頭和校驗(yàn)信息威创,通過物理層將二進(jìn)制信息傳輸至接收端
解封:從接收端物理層接收到數(shù)據(jù)后落午,在數(shù)據(jù)鏈路層刪除報(bào)頭和校驗(yàn)信息,向上每一層刪除相應(yīng)的報(bào)頭肚豺,最終獲得發(fā)送端發(fā)來的數(shù)據(jù)
-
PDU(協(xié)議數(shù)據(jù)單元):對(duì)等層次之間傳遞的數(shù)據(jù)單位
- 物理層的PDU: bit 數(shù)據(jù)位
- 數(shù)據(jù)鏈路層的PDU: frame 數(shù)據(jù)幀
- 傳輸層的PDU: packet 數(shù)據(jù)包
- 網(wǎng)絡(luò)層的PDU: segment 數(shù)據(jù)段
- 更高層次的PDU: message 消息
(三)三種通訊模式:?jiǎn)尾ダUV播、組播
- 單播:主機(jī)間“一對(duì)一”通信
- 廣播:主機(jī)間“一對(duì)所有”通信
- 組播:主機(jī)間“一對(duì)一組”通信
三详炬、網(wǎng)絡(luò)設(shè)備:
(一)網(wǎng)絡(luò)線纜和接口
- 非屏蔽雙絞線UTP (unshielded twisted-pair cable)
- T568A:綠白盐类、綠、橙白呛谜、藍(lán)在跳、藍(lán)白、橙隐岛、棕白猫妙、棕
- T568B:橙白、橙聚凹、綠白割坠、藍(lán)、藍(lán)白妒牙、綠彼哼、棕白、棕
- 100M實(shí)際使用12/36組線
- 1000M實(shí)際使用12/36/45/78組線
- 接頭:RJ-45
- UTP直通線和交叉線
- 直通線:線纜兩端接頭排線遵循相同線序(兩端都是T568A或者T568B)
- 交叉線:線纜兩端接頭排線各遵循T568A和T568B兩種標(biāo)準(zhǔn)之一(一端為T568A湘今,則另一端必須為T568B)
- 同類設(shè)備相連用交叉線敢朱,不同類設(shè)備相連用直通線,但現(xiàn)在都能夠自動(dòng)識(shí)別并翻轉(zhuǎn)摩瞎,交叉線使用情況變少
(二)網(wǎng)絡(luò)適配器(網(wǎng)卡)
現(xiàn)在的網(wǎng)卡都是以太網(wǎng)卡
以太網(wǎng)應(yīng)遵循802.3標(biāo)準(zhǔn)拴签,由于802.3標(biāo)準(zhǔn)的幀結(jié)構(gòu)存在缺陷,目前以太網(wǎng)第二代(Ethernet II)中沒有使用完全按照標(biāo)準(zhǔn)要求的幀格式
-
以太網(wǎng)幀格式:
- 前導(dǎo)碼(preamble):8Byte
- 目的MAC地址:6Byte
- 源MAC地址:6Byte
- 類型:2Byte
- 數(shù)據(jù):46-1500Byte
- 幀校驗(yàn)序列:4Byte
-
MAC地址格式:
- 高24位:IEEE給不同廠商分配的代碼旗们,稱為組織唯一標(biāo)識(shí)符
- 低24位:各廠商自行分配蚓哩,稱為擴(kuò)展標(biāo)識(shí)符
-
CSMA/CD 沖突檢測(cè)的載波偵聽多路訪問
- 傳統(tǒng)以太網(wǎng)中共享傳輸介質(zhì),使用此技術(shù)
- 工作方式:先聽后發(fā)上渴,邊發(fā)邊聽岸梨,沖突停發(fā)喜颁,隨機(jī)延遲后重發(fā)
(三)集線器(Hub)
工作于物理層
采用廣播方式轉(zhuǎn)發(fā),所有端口在一個(gè)沖突域中
工作特點(diǎn):共享帶寬盛嘿、半雙工
(四)交換機(jī)
工作于數(shù)據(jù)鏈路層
通過端口隔離了網(wǎng)絡(luò)沖突域
工作特點(diǎn):每個(gè)端口占一個(gè)帶寬洛巢,一般工作在全雙工模式下
交換機(jī)監(jiān)聽數(shù)據(jù)幀中源MAC地址,學(xué)習(xí)MAC次兆,建立MAC表
對(duì)于未知MAC地址稿茉,交換機(jī)將轉(zhuǎn)發(fā)到除接收該幀的端口之外的所有端口
當(dāng)交換機(jī)接到一個(gè)數(shù)據(jù)幀時(shí),如果該幀的目的位于接收端口所在網(wǎng)段上芥炭,它就過濾掉該數(shù)據(jù)幀漓库;如果目的MAC地址在位于另外一個(gè)端口,網(wǎng)橋就將該幀轉(zhuǎn)發(fā)到該端口
當(dāng)交換機(jī)接到廣播幀時(shí)候园蝠,它立即轉(zhuǎn)發(fā)到除接收端口之外的所有其他端口
(五)路由器
分割廣播域
選擇路由表中到達(dá)目標(biāo)的最佳路徑
維護(hù)和檢查路由信息(路由表)
鏈接廣域網(wǎng)
(六)虛擬局域網(wǎng)
特點(diǎn):分割廣播域渺蒿、安全、靈活管理
按照端口分組劃分
四彪薛、TCP/IP協(xié)議棧
TCP(Transmission Control Protocol): 傳輸控制協(xié)議
IP(Internet Protocol): 因特網(wǎng)互聯(lián)協(xié)議TCP/IP是一個(gè)協(xié)議棧茂装,包括TCP、IP善延、UDP少态、ICMP、RIP易遣、TELNET彼妻、FTP、SMTP豆茫、ARP等許多協(xié)議
(一)TCP/IP協(xié)議棧
分層結(jié)構(gòu)侨歉,共定義了四層:網(wǎng)絡(luò)訪問層、Internet層揩魂、傳輸層幽邓、應(yīng)用層
-
與OSI參考模型的對(duì)應(yīng)關(guān)系
- OSI模型物理層和數(shù)據(jù)鏈路層合并為TCP/IP中的網(wǎng)絡(luò)訪問層
- OSI模型網(wǎng)絡(luò)層改稱TCP/IP中的Internet層
- OSI模型傳輸層在TCP/IP中不變
- OSI模型會(huì)話層、表示層火脉、應(yīng)用層合并為TCP/IP中的應(yīng)用層
(二) TCP/IP協(xié)議的應(yīng)用層:
FTP颊艳、SMTP、Telnet忘分、SNMP、DNS等協(xié)議
(三) TCP/IP協(xié)議的傳輸層:
- 傳輸層主要負(fù)責(zé)工作:多路會(huì)話白修、成段妒峦、流量控制、面向連接兵睛、可靠連接肯骇,后三項(xiàng)視具體協(xié)議能否提供相應(yīng)功能
(1) TCP協(xié)議:
1.TCP協(xié)議的特點(diǎn):
工作在傳輸層窥浪,面向連接協(xié)議
全雙工協(xié)議
半關(guān)閉
錯(cuò)誤檢查
將數(shù)據(jù)打包成段,排序
確認(rèn)機(jī)制
數(shù)據(jù)恢復(fù)笛丙,重傳
流量控制漾脂,滑動(dòng)窗口
擁塞控制,慢啟動(dòng)和擁塞避免算法
2.TCP首部結(jié)構(gòu):20-60字節(jié)
源端口胚鸯、目標(biāo)端口:通過端口進(jìn)行進(jìn)程間通信骨稿,源端口、目標(biāo)端口用16位表示姜钳,可推算計(jì)算機(jī)的端口個(gè)數(shù)為2^16個(gè)
序列號(hào):表示本報(bào)文段所發(fā)送數(shù)據(jù)的第一個(gè)字節(jié)的編號(hào)坦冠。在TCP連接中所傳送的字節(jié)流的每一個(gè)字節(jié)都會(huì)按順序編號(hào)序列號(hào)由32位表示
確認(rèn)號(hào):表示接收方期望收到發(fā)送方下一個(gè)報(bào)文段的第一個(gè)字節(jié)數(shù)據(jù)的編號(hào)膨疏,由32位表示
數(shù)據(jù)偏移:表示TCP報(bào)文段的首部長(zhǎng)度歹河,共4位照弥,由于TCP首部包含一個(gè)長(zhǎng)度可變的選項(xiàng)部分廷区,需要指定這個(gè)TCP報(bào)文段到底有多長(zhǎng)育八。它指出TCP 報(bào)文段的數(shù)據(jù)起始處距離TCP 報(bào)文段的起始處有多遠(yuǎn)注祖。該字段的單位是32位(即4個(gè)字節(jié)為計(jì)算單位)品嚣,4位二進(jìn)制最大表示15磁浇,所以數(shù)據(jù)偏移也就是TCP首部最大60字節(jié)
ACK:表示前面的確認(rèn)號(hào)字段是否有效送滞。ACK=1侠草,表示有效。只有當(dāng)ACK=1時(shí)累澡,前面的確認(rèn)號(hào)字段才有效梦抢。TCP規(guī)定,連接建立后愧哟,ACK必須為1,帶ACK標(biāo)志的TCP報(bào)文段稱為確認(rèn)報(bào)文段
SYN:在建立連接時(shí)使用奥吩,用來同步序號(hào)。當(dāng)SYN=1蕊梧,ACK=0時(shí)霞赫,表示這是一個(gè)請(qǐng)求建立連接的報(bào)文段;當(dāng)SYN=1肥矢,ACK=1時(shí)端衰,表示對(duì)方同意建立連接。SYN=1甘改,說明這是一個(gè)請(qǐng)求建立連接或同意建立連接的報(bào)文旅东。只有在前兩次握手中SYN才置為1,帶SYN標(biāo)志的TCP報(bào)文段稱為同步報(bào)文段
FIN:表示通知對(duì)方本端要關(guān)閉連接了十艾,標(biāo)記數(shù)據(jù)是否發(fā)送完畢抵代。如果FIN=1,即告訴對(duì)方:“我的數(shù)據(jù)已經(jīng)發(fā)送完畢忘嫉,你可以釋放連接了”荤牍,帶FIN標(biāo)志的TCP報(bào)文段稱為結(jié)束報(bào)文段
窗口大邪赶佟:表示現(xiàn)在充許對(duì)方發(fā)送的數(shù)據(jù)量,也就是告訴對(duì)方康吵,從本報(bào)文段的確認(rèn)號(hào)開始允許對(duì)方發(fā)送的數(shù)據(jù)量劈榨,用16位表示
3.端口:16位表示,表示范圍0至65535
0-1023:系統(tǒng)端口或特權(quán)端口(僅管理員可用)晦嵌,永久的分配給固定的系統(tǒng)應(yīng)用使用同辣,如:22/tcp(ssh), 80/tcp(http), 443/tcp(https)
1024-49151:用戶端口或注冊(cè)端口,分配給程序注冊(cè)為某應(yīng)用使用耍铜,如:
3306/tcp(mysql), 11211/tcp/udp(memcached)49152-65535:動(dòng)態(tài)端口或私有端口邑闺,客戶端程序隨機(jī)使用的端口
linux系統(tǒng)動(dòng)態(tài)端口范圍的定義:cat /proc/sys/net/ipv4/ip_local_port_range
4.TCP三次握手
說明:
(1)客戶機(jī)初始化TCP連接,向服務(wù)器發(fā)送一個(gè)SYN=1請(qǐng)求
(2)服務(wù)器創(chuàng)建一個(gè)偵聽套接字棕兼,進(jìn)入LISTEN狀態(tài)
(3)服務(wù)器接收到SYN陡舅,發(fā)送SYN=1和ACK=1同意連接請(qǐng)求
(4)客戶機(jī)接收到服務(wù)器發(fā)送的SYN和ACK,進(jìn)入ESTABLISHED狀態(tài)伴挚,并回復(fù)服務(wù)器ACK=1
(5)服務(wù)器接到客戶機(jī)的ACK進(jìn)入ESTABLISHED狀態(tài)靶衍,客戶機(jī)和服務(wù)器成功連接,開始傳送數(shù)據(jù)
5.TCP四次揮手
說明:
(1)客戶機(jī)進(jìn)程準(zhǔn)備關(guān)閉連接茎芋,向服務(wù)器發(fā)送一個(gè)FIN=1請(qǐng)求颅眶,進(jìn)入FINAL-WAIT-1狀態(tài)
(2)服務(wù)器接收到FIN后,進(jìn)入CLOSE-WAIT狀態(tài)田弥,回復(fù)客戶機(jī)ACK=1確認(rèn)關(guān)閉連接涛酗,并通知應(yīng)用進(jìn)程
(3)客戶機(jī)接收到服務(wù)器的ACK后,進(jìn)入FINAL-WAIT-2狀態(tài)
(4)服務(wù)器進(jìn)程同意關(guān)閉連接偷厦,進(jìn)入LAST-ACK狀態(tài)商叹,并向客戶機(jī)發(fā)送FIN=1和ACK=1請(qǐng)求關(guān)閉連接
(5)客戶機(jī)接收到服務(wù)器的FIN和ACK后,進(jìn)入TIME-WAIT狀態(tài)只泼,向服務(wù)器發(fā)送ACK=1剖笙,并在一定時(shí)間后自動(dòng)進(jìn)入CLOSED狀態(tài)
(6)服務(wù)器接收到LAST-ACK后,進(jìn)入CLOSED狀態(tài)
6.有限狀態(tài)機(jī)
CLOSED 沒有任何連接狀態(tài)
LISTEN 偵聽狀態(tài)请唱,等待來自遠(yuǎn)方TCP端口的連接請(qǐng)求
SYN-SENT 在發(fā)送連接請(qǐng)求后弥咪,等待對(duì)方確認(rèn)
SYN-RECEIVED 在收到和發(fā)送一個(gè)連接請(qǐng)求后,等待對(duì)方確認(rèn)
ESTABLISHED 代表傳輸連接建立十绑,雙方進(jìn)入數(shù)據(jù)傳送狀態(tài)
FIN-WAIT-1 主動(dòng)關(guān)閉,主機(jī)已發(fā)送關(guān)閉連接請(qǐng)求聚至,等待對(duì)方確認(rèn)
FIN-WAIT-2 主動(dòng)關(guān)閉,主機(jī)已收到對(duì)方關(guān)閉傳輸連接確認(rèn),等待對(duì)方發(fā)送關(guān)閉傳輸連接請(qǐng)求
TIME-WAIT 完成雙向傳輸連接關(guān)閉本橙,等待所有分組消失
CLOSE-WAIT 被動(dòng)關(guān)閉,收到對(duì)方發(fā)來的關(guān)閉連接請(qǐng)求晚岭,并已確認(rèn)
LAST-ACK 被動(dòng)關(guān)閉,等待最后一個(gè)關(guān)閉傳輸連接確認(rèn),并等待所有分組消失
CLOSING 雙方同時(shí)嘗試關(guān)閉傳輸連接,等待對(duì)方確認(rèn)
7.TCP超時(shí)重傳
TCP為每一個(gè)報(bào)文維護(hù)一個(gè)重傳定時(shí)器坦报,報(bào)文發(fā)送時(shí)開啟計(jì)時(shí),若超過時(shí)間未有應(yīng)答狂鞋,則重發(fā)報(bào)文并將計(jì)時(shí)器時(shí)間重置
-
TCP重傳策略:下次重傳時(shí)間如何選擇片择,最多執(zhí)行多少次重傳
- 與TCP超時(shí)重傳相關(guān)的兩個(gè)內(nèi)核參數(shù):
cat /proc/sys/net/ipv4/tcp_retries1 //指定在底層IP接管之前TCP最少執(zhí)行的重傳次數(shù),默認(rèn)值是3
cat /proc/sys/net/ipv4/tcp_retries2 //指定連接放棄前TCP最多可以執(zhí)行的重傳次數(shù)骚揍,默認(rèn)值15(一般對(duì)應(yīng)13~30min)
8.TCP固定窗口和滑動(dòng)窗口
固定窗口:每次發(fā)送的報(bào)文數(shù)量相同
滑動(dòng)窗口:接收方會(huì)告訴發(fā)送方下次發(fā)送的報(bào)文數(shù)量
9.TCP擁塞控制
功能:提高網(wǎng)絡(luò)利用率字管,降低丟包率,并保證網(wǎng)絡(luò)資源對(duì)每條數(shù)據(jù)流的公平性
擁塞控制的四個(gè)部分:慢啟動(dòng)(slow start)信不、擁塞避免(congestion avoidance)嘲叔、快速重傳(fast retransmit)和快速恢復(fù)(fast recovery)
linux當(dāng)前使用的擁塞算法:
cat /proc/sys/net/ipv4/tcp_congestion_control
(2)UDP(User Datagram Protocol)協(xié)議 :
1.UDP協(xié)議的特點(diǎn)
工作在傳輸層
提供不可靠的網(wǎng)絡(luò)訪問
非面向連接協(xié)議
有限的錯(cuò)誤檢查
傳輸性能高
無數(shù)據(jù)恢復(fù)特性
2.UDP首部結(jié)構(gòu)
源端口:16位
目的端口:16位
數(shù)據(jù)報(bào)長(zhǎng)度:16位
校驗(yàn)值:16位
(四)TCP/IP協(xié)議的Internet層
-
Internet層的主要協(xié)議:
IP(Internet Protocol)
ICMP(Internet Control Message Protocol):報(bào)告錯(cuò)誤、交換受限控制和狀態(tài)信息
ARP(Address Resolution Protocol) :根據(jù)IP地址獲取MAC地址
RARP(Reverse Address Resolution Protocol):根據(jù)MAC地址獲取IP地址