零、概述
- OSI參考模型:物理層辆沦,數(shù)據(jù)鏈路層昼捍,網(wǎng)絡(luò)層,傳輸層肢扯,會話層妒茬,表示層,應(yīng)用層
- TCP/IP模型:物理層蔚晨、網(wǎng)絡(luò)接口層乍钻,互聯(lián)網(wǎng)絡(luò)層,傳輸層铭腕,應(yīng)用層
一银择、物理層
- 以電壓的高低和燈光的閃滅代表0和1,規(guī)定連接器和網(wǎng)線的規(guī)格
- 集線器:工作于物理層和數(shù)據(jù)鏈路層的介質(zhì)訪問控制(MAC)子層累舷;共享介質(zhì)浩考;采用廣播方式發(fā)送;沖突檢測笋粟,載波監(jiān)聽怀挠,多路訪問析蝴。
二害捕、數(shù)據(jù)鏈路層
- 作用:互連設(shè)備之間傳送和識別數(shù)據(jù)幀
- 相關(guān)技術(shù):MAC地址,共享介質(zhì)型網(wǎng)絡(luò)闷畸,非共享介質(zhì)型網(wǎng)絡(luò)尝盼,根據(jù)MAC地址轉(zhuǎn)發(fā),環(huán)路檢測技術(shù)佑菩,VLAN
- 以太網(wǎng)是眾多數(shù)據(jù)鏈路中最著名盾沫、最廣泛的一種
- 以太網(wǎng)交換機:(相當(dāng)于持有多個端口的網(wǎng)橋)根據(jù)數(shù)據(jù)鏈路層中每個 幀的目的MAC地址裁赠,決定從哪個網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù);所參考的赴精、用以 記錄發(fā)送接口的表叫作轉(zhuǎn)發(fā)表(自動生成)佩捞。
- 幀格式:(8字節(jié)前導(dǎo)碼)+6字節(jié) 目的MAC+源MAC+2字節(jié) 上層協(xié)議類型+46~1500字節(jié) 數(shù)據(jù)+4字節(jié) FCS 幀檢驗序列
- 其余數(shù)據(jù)鏈路:無線通信、PPP蕾哟。一忱。。
三谭确、網(wǎng)絡(luò)層
作用:在數(shù)據(jù)鏈路層提供的兩個相鄰端點之間的數(shù)據(jù)幀傳送功能上帘营,進(jìn)一步管理網(wǎng)絡(luò)中的數(shù)據(jù)通信,將數(shù)據(jù)設(shè)法從源端經(jīng)過若干個中間節(jié)點傳送到目的端逐哈,從而向傳輸層提供最基本的端到端的數(shù)據(jù)傳送服務(wù)→ 地址管理和路由選擇
-
IP協(xié)議(internet protocol 網(wǎng)際協(xié)議)
- 是一種無連接芬迄、不可靠的IP分組的交付服務(wù),
- IP地址
-
分類:A類 0開頭昂秃;B類 10開頭禀梳;C類110 開頭; D類 1110開頭肠骆,多播地址出皇;E類 11110 開頭,保留為今后使用
- 網(wǎng)絡(luò)號字段 + 主機號字段
- 子網(wǎng)編址→使得多個物理網(wǎng)絡(luò)可以共用一個網(wǎng)絡(luò)前綴→IP = 【網(wǎng)絡(luò)號哗戈, 子網(wǎng)號郊艘,主機號】→子網(wǎng)掩碼,網(wǎng)絡(luò)號和子網(wǎng)號部分全1→廣播地址唯咬,主機號部分全1
- 無分類編址CIDR纱注,其網(wǎng)絡(luò)前綴等同于子網(wǎng)劃分中的網(wǎng)絡(luò)號和子網(wǎng)號
-
- IP數(shù)據(jù)報格式
- 首部(20字節(jié))+數(shù)據(jù)部分
- 版本0.5+首部長度0.5+服務(wù)類型1+總長度2+標(biāo)識2+標(biāo)志,片偏移2+生存時間1+協(xié)議1+首部校驗和2+源地址4+目的地址4
- 生存時間TTL胆胰,單位是跳狞贱,標(biāo)識IP數(shù)據(jù)報在網(wǎng)絡(luò)中剩余的壽命;協(xié)議字段指出應(yīng)將數(shù)據(jù)部分交給哪一個進(jìn)程蜀涨,ICMP IGMP TCP UDP OSPF瞎嬉;
-
只校驗首部,而不校驗數(shù)據(jù)部分
- IP數(shù)據(jù)報分片和重組
- 原因:不同網(wǎng)絡(luò)MTU不同
- 路由器負(fù)責(zé)分片厚柳,目的主機負(fù)責(zé)重組
- 標(biāo)識:源主機賦予數(shù)據(jù)報的唯一標(biāo)識符氧枣;標(biāo)志:標(biāo)志是否允許分片以及是否是最后一個分片;片偏移别垮,以8字節(jié)位單位
- 分片原則:分片個數(shù)越少越好便监,且是8字節(jié)的整數(shù)倍(最后一個分片不足8字節(jié)的部分補0)。
- 地址解析協(xié)議ARP
- 作用:為網(wǎng)絡(luò)層IP地址和數(shù)據(jù)鏈路層MAC地址提供動態(tài)映射
- 使用廣播方式獲得物理地址
- 使用ARP高速緩存,具有20分鐘生存周期
- ARP獲得的是IP數(shù)據(jù)報傳送到目的主機過程中下一跳上路由器的MAC地址
- 因特網(wǎng)控制報文協(xié)議ICMP
- 虛擬專用網(wǎng)
-
路由器
- 一個路由器至少應(yīng)當(dāng)有兩個不同的IP地址
- 包括路由選擇部分和分組轉(zhuǎn)發(fā)部分
- 若路由器處理分組的速率趕不上分組進(jìn)入隊列的速率烧董,則未處理的分組存入緩存→輸入或者輸出隊列產(chǎn)生溢出是造成分組丟失的重要原因
- 轉(zhuǎn)發(fā)原則
- 同一網(wǎng)絡(luò):直接交付毁靶,不使用路由器;間接交付逊移,使用路由器预吆,根據(jù)路由表轉(zhuǎn)發(fā)。
- 路由表:(目的網(wǎng)絡(luò)地址胳泉,子網(wǎng)掩碼啡浊,下一跳路由器IP地址(如果是直接交付,則可以用橫杠表示)胶背,接口)
- 特定主機路由:掩碼255.255.255.255巷嚣;默認(rèn)路由:掩膜0.0.0.0
- 最長前最匹配
- 私有地址:只能用于專用互聯(lián)網(wǎng)內(nèi)部通信的IP地址空間:10/8、 172.16/12钳吟、 192.168/16
四廷粒、傳輸層
作用:管理兩個網(wǎng)絡(luò)節(jié)點之間的數(shù)據(jù)傳輸
-
端口:
- 作用
- 五元組:源IP,目的IP红且,協(xié)議號坝茎,源端口號,目的端口號暇番,
- 端口號由其使用的傳輸層協(xié)議決定→不同的傳輸協(xié)議可以使用相同的端口號嗤放;如,TCP與UDP使用同一個端口號壁酬,但使用目的各不相同→數(shù)據(jù)到達(dá)IP層后次酌,會先檢查IP首部中的協(xié)議號,再傳給相應(yīng)協(xié)議的模塊做端口號的處理舆乔≡婪→知名端口號與協(xié)議無關(guān)
-
TCP:
面向連接的、可靠的流協(xié)議→用于有必要實現(xiàn)可靠傳輸?shù)那闆r
是什么:TCP是傳輸控制協(xié)議希俩,是一種面向連接的吊宋、可靠的、基于字節(jié)流的傳輸層通信協(xié)議颜武。
應(yīng)用層向TCP層發(fā)送用于網(wǎng)間傳輸?shù)牧选⒂?位字節(jié)表示的數(shù)據(jù)流,然后TCP把數(shù)據(jù)流分組成適當(dāng)長度的報文段(通常收改計算機連接的網(wǎng)絡(luò)的數(shù)據(jù)鏈路層的MTU的限制)鳞上,之后TCP把結(jié)果包傳給IP層这吻,有它來通過網(wǎng)絡(luò)將包傳送給接收端實體的TCP層。TCP層為了保證不丟包因块,就給每個包一個序號橘原,同時序號也保證了傳送到接收端實體的包的按序接收。
-
報文格式:2源端口+2目的端口+4序號+4確認(rèn)號+2 數(shù)據(jù)偏移涡上、保留趾断、偏置+2窗口+2校驗和+2緊急指針
- 序列號:表示發(fā)端到收端發(fā)送的數(shù)據(jù)字節(jié)流,表示在這個報文段中的第一個數(shù)據(jù)字節(jié)在數(shù)據(jù)流中的序號
- 確認(rèn)號:發(fā)送確認(rèn)的一段所期望收到的下一個序號吩愧,因此確認(rèn)序號應(yīng)當(dāng)是上次已成功收到的數(shù)據(jù)字節(jié)序號加1芋酌,不過只有當(dāng)標(biāo)志位ACK置1時,確認(rèn)號字段才有效
- 偏移:首部中32bit字的數(shù)目→占4bit→首部最長4*15=60字節(jié)
- 標(biāo)志位:URG雁佳,表明報文中包含緊急數(shù)據(jù)脐帝;ACK,確認(rèn)號有效糖权;PSH堵腹,數(shù)據(jù)報到達(dá)收端立即交給應(yīng)用程序,而不是在緩沖區(qū)排隊星澳;SYN疚顷,同步號,建立連接用禁偎;FIN腿堤,發(fā)端已經(jīng)達(dá)到數(shù)據(jù)末尾,數(shù)據(jù)傳輸完成如暖。
- 窗口:滑動窗口笆檀,用于流量控制?盒至?
-
連接管理
- 三次握手:
- 發(fā)端發(fā)送連接請求報文段酗洒,SYN=1,ACK=0枷遂,seq=x寝蹈;
- 收端收到SYN報文段,發(fā)送SYN+ACK報文段登淘,SYN=1箫老,ACK=1,seq=y黔州,ack=x+1耍鬓;
- 發(fā)端發(fā)送ACK報文段,SYN=0流妻,ACK=1牲蜀,ack=y+1
- 數(shù)據(jù)傳輸階段:
- 發(fā)端:SYN=0,ACK=1绅这,seq=x+1涣达,ack=y+1
- 收端:SYN=0,ACK=1,ack=x+1
- 四次揮手:
- 主機1請求關(guān)閉度苔,主機1向主機2發(fā)送FIN報文段匆篓,設(shè)置seq_1和ack_1,
- 主機2確認(rèn)請求寇窑,主機2收到FIN報文段鸦概,發(fā)回一個ack報文段
ack_2=seq_1+1, - 主機2請求關(guān)閉甩骏,主機2想主機1發(fā)送FIN報文段窗市,seq_2 = y,
-
主機1向主機2發(fā)送確認(rèn)報文段饮笛,主機2收到主機1確認(rèn)報文段后關(guān)閉連接咨察;主機1等待2MSL(最大報文段生成時間)后沒收到回復(fù),則證明主機2已經(jīng)正常關(guān)閉福青,主機1關(guān)閉連接摄狱。
- 三次握手:
-
為何進(jìn)行三次握手,不是兩次握手素跺?
- 為了防止已失效的連接請求報文段突然又傳送到了服務(wù)端→架設(shè)client發(fā)送的第一個請求連接報文段并沒有丟失二蓝,而是在某個網(wǎng)絡(luò)節(jié)點長時間滯留,連接釋放后某個時間才到達(dá)server指厌;server在收到此請求后刊愚,誤認(rèn)為是新請求,發(fā)回確認(rèn)報文段踩验,如果不是三次握手鸥诽,此時連接已經(jīng)建立,server會一直等待client發(fā)來數(shù)據(jù)箕憾,造成server資源的浪費牡借。
-
為何進(jìn)行四次揮手?
- TCP是全雙工模式袭异,當(dāng)主機1發(fā)出FIN報文段時钠龙,只是表示主機1已經(jīng)沒有數(shù)據(jù)要發(fā)送,但是主機1還可以接受來自主機2的數(shù)據(jù)→主機2發(fā)回ACK報文表示已經(jīng)知道主機1沒數(shù)據(jù)發(fā)送御铃;當(dāng)主機2也發(fā)送FIN報文段碴里,表示主機2也沒數(shù)據(jù)發(fā)送,主機1才能關(guān)閉連接上真。
- 狀態(tài)變化:FIN_WAIT_1→主動關(guān)閉連接咬腋,等待對方回應(yīng);FIN_WAIT_2睡互,半連接狀態(tài)根竿;TIME_WAIT陵像,收到對方的FIN報文,并發(fā)送出ACK報文寇壳,等待2MSL后即可進(jìn)入關(guān)閉狀態(tài)醒颖;CLOSE_WAIT,收到并確認(rèn)對方關(guān)閉請求后,等待自己數(shù)據(jù)傳送完畢九巡;LAST_ACK图贸,等待對方確認(rèn)報文蹂季,一旦收到確認(rèn)報文即可關(guān)閉
- TCP是全雙工模式袭异,當(dāng)主機1發(fā)出FIN報文段時钠龙,只是表示主機1已經(jīng)沒有數(shù)據(jù)要發(fā)送,但是主機1還可以接受來自主機2的數(shù)據(jù)→主機2發(fā)回ACK報文表示已經(jīng)知道主機1沒數(shù)據(jù)發(fā)送御铃;當(dāng)主機2也發(fā)送FIN報文段碴里,表示主機2也沒數(shù)據(jù)發(fā)送,主機1才能關(guān)閉連接上真。
-
UDP:
- 不具有可靠性的數(shù)據(jù)包協(xié)議冕广,細(xì)微的處理會交給上層的應(yīng)用去完成→用于對高速傳輸和實時性有較高要求的通信或廣播通信
- UDP是什么,UDP是用戶數(shù)據(jù)報協(xié)議偿洁,它不提供復(fù)雜的控制機制撒汉,提供面向無連接的通信服務(wù)。
五涕滋、路由控制協(xié)議
- 外部網(wǎng)關(guān)協(xié)議EGP
- 邊界網(wǎng)關(guān)協(xié)議 BGP
- 內(nèi)部網(wǎng)關(guān)協(xié)議IGP
- 路由信息協(xié)議 RIP
- 開放式最短路徑優(yōu)先 OSPF
- 路由算法
- 距離向量算法:根據(jù)距離和方向決定目標(biāo)網(wǎng)絡(luò)或目的主機位置
- 優(yōu)點:處理簡單
- 缺點:只有距離和方向信息睬辐,當(dāng)網(wǎng)絡(luò)構(gòu)造復(fù)雜時,獲得穩(wěn)定路由信息前需要消耗一定時間宾肺;容易發(fā)生路由循環(huán)溯饵;每個路由器持有信息不同,無法判斷信息正確與否
- 鏈路狀態(tài)算法:路由器在了解網(wǎng)絡(luò)整體連接狀態(tài)的基礎(chǔ)上生成路由控制表
- 優(yōu)點:所有路由器持有相同信息锨用,便于檢驗丰刊;即使網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,每個路由器也能保持正確信息
- 缺點:獲取路由信息表需要高速CPU處理能力和大量內(nèi)存增拥。
- 距離向量算法:根據(jù)距離和方向決定目標(biāo)網(wǎng)絡(luò)或目的主機位置
- RIP
- 基于距離向量算法決定路徑啄巧,距離的單位為 跳數(shù)