1,兩種參考模型
OSI參考模型掌测,七層
Open System Interconnect
* 應(yīng)用層
* 表示層
* 會(huì)話層
* 傳輸層
* 網(wǎng)絡(luò)層
* 數(shù)據(jù)鏈路層
* 物理層
TCP/IP參考模型内贮,四層。(一般按照這個(gè)模型來)
Transmission Control Protocol/Internet Protocol
* 應(yīng)用層汞斧,處理特定應(yīng)用程序細(xì)節(jié)夜郁。FTP,E-MAIL粘勒,Telnet竞端。
* 傳輸層,為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的服務(wù)庙睡。TCP婶熬,UDP。
* 網(wǎng)絡(luò)層埃撵,處理分組在網(wǎng)絡(luò)中的活動(dòng)赵颅,點(diǎn)到點(diǎn)。IP暂刘,ICMP饺谬,IGMP。路由器就在這一層。
* 鏈路層募寨,處理與傳輸媒介的物理接口細(xì)節(jié)族展。ARP,RARP拔鹰,設(shè)備驅(qū)動(dòng)程序仪缸,接口卡。網(wǎng)橋列肢,交換機(jī)在這一層恰画。
TCP/IP協(xié)議族:一組不同的協(xié)議組合在一起構(gòu)成的協(xié)議族。
- 路由器工作在網(wǎng)絡(luò)層瓷马,IP拴还。
- 網(wǎng)橋工作在鏈路層。
互聯(lián)網(wǎng)的兩個(gè)名詞
* internet
* Internet
2欧聘,傳輸層的UDP片林,TCP
UDP,用戶數(shù)據(jù)報(bào)協(xié)議怀骤,無連接费封,不可靠,數(shù)據(jù)報(bào)模式蒋伦。使用UDP的應(yīng)用層協(xié)議:視頻弓摘,語音廣播,DNS凉敲,TFTP等對(duì)速度要求高的衣盾。
TCP,傳輸控制協(xié)議爷抓,有連接势决,可靠,流模式蓝撇。使用TCP的應(yīng)用層協(xié)議:HTTP果复,Telnet,F(xiàn)TP等對(duì)可靠性要求高的渤昌。
在TCP的連接中虽抄,數(shù)據(jù)流必須以正確的順序送達(dá)對(duì)方。TCP的可靠性是通過順序編號(hào)和確認(rèn)(ACK)來實(shí)現(xiàn)的独柑。
TCP在開始傳送一個(gè)段時(shí)迈窟,為準(zhǔn)備重傳而首先將該段插入到發(fā)送隊(duì)列之中,同時(shí)啟動(dòng)時(shí)鐘忌栅。其后车酣,如果收到了接受端對(duì)該段的ACK信息,就將該段從隊(duì)列中刪去。如果在時(shí)鐘規(guī)定的時(shí)間內(nèi)湖员,ACK未返回贫悄,那么就從發(fā)送隊(duì)列中再次送出這個(gè)段。
3娘摔,傳輸層TCP的三次握手和四次揮手
三次握手:
- 第一次:Client將標(biāo)識(shí)的SYN置為1窄坦,隨機(jī)產(chǎn)生一個(gè)值seq=J,并將該數(shù)據(jù)包發(fā)送給Server凳寺。
- 第二次:Server收到數(shù)據(jù)包后由SYN=1知道Client要請(qǐng)求建立連接鸭津,Server將標(biāo)志位SYN和ACK都置為1,ack=J+1读第,隨機(jī)產(chǎn)生一個(gè)值seq=K曙博,并將該數(shù)據(jù)包發(fā)送給Client已確認(rèn)連接請(qǐng)求拥刻,Server進(jìn)入SYN_RCVD狀態(tài)怜瞒。
- 第三次:Client收到確認(rèn)后,檢查ack是否為J+1般哼,ACK是否為1吴汪,如果正確則將標(biāo)志位ACK置為1,ack=K+1蒸眠,并將該數(shù)據(jù)包發(fā)送給Server漾橙,Server檢查ACK是否為1,ack是否為K+1楞卡,如果正確則連接建立成功霜运,Client和Server進(jìn)入ESTABLISHED狀態(tài),完成三次握手蒋腮,隨后Client與Server之間可以開始傳輸數(shù)據(jù)了淘捡。
四次揮手:
- 第一次揮手:Client將標(biāo)識(shí)的FIN設(shè)置為1,隨機(jī)產(chǎn)生一個(gè)值seq=M池摧,并將該數(shù)據(jù)包發(fā)送給Server焦除,Client進(jìn)入FIN_WAIT_1狀態(tài)。
- Server收到FIN后作彤,發(fā)送一個(gè)ACK給Client膘魄,確認(rèn)序號(hào)為seq=M+1,Server進(jìn)入CLOSE_WAIT狀態(tài)竭讳。
- 第三次揮手:Server發(fā)送一個(gè)FIN创葡,用來關(guān)閉Server到Client的數(shù)據(jù)傳送,Server進(jìn)入LAST_ACK狀態(tài)绢慢。
- 第四次揮手:Client收到FIN后灿渴,Client進(jìn)入TIME_WAIT狀態(tài),接著發(fā)送一個(gè)ACK給Server,確認(rèn)序號(hào)為收到序號(hào)+1逻杖,Server進(jìn)入CLOSED狀態(tài)奋岁,完成四次揮手。
**為什么建立連接是三次握手荸百,而關(guān)閉連接卻是四次揮手呢闻伶? **
這是因?yàn)榉?wù)端在LISTEN狀態(tài)下,收到建立連接請(qǐng)求的SYN報(bào)文后够话,把ACK和SYN放在一個(gè)報(bào)文里發(fā)送給客戶端蓝翰。而關(guān)閉連接時(shí),當(dāng)收到對(duì)方的FIN報(bào)文時(shí)女嘲,僅僅表示對(duì)方不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù)畜份,己方也未必全部數(shù)據(jù)都發(fā)送給對(duì)方了,所以己方可以立即close欣尼,也可以發(fā)送一些數(shù)據(jù)給對(duì)方后爆雹,再發(fā)送FIN報(bào)文給對(duì)方來表示同意現(xiàn)在關(guān)閉連接,因此愕鼓,己方ACK和FIN一般都會(huì)分開發(fā)送钙态。
4,網(wǎng)絡(luò)層的IP地址的劃分
IPV4地址菇晃,32位,4*8
例如:192.168.0.1
- A類地址:
0*******.********.********.********
册倒,從0.0.0.0 到127.255.255.255;- 默認(rèn)子網(wǎng)掩碼為255.0.0.0。7位網(wǎng)絡(luò)號(hào),24位主機(jī)號(hào)杉女。
- 第一個(gè)八位字節(jié)指明網(wǎng)絡(luò)沼本,后三個(gè)八位字節(jié)指明網(wǎng)絡(luò)上的主機(jī)。
- 第一個(gè)八位字節(jié)若為127和0,不作為A類網(wǎng)絡(luò)地址。網(wǎng)絡(luò)號(hào)127保留作為本機(jī)軟件回路測(cè)試之用,如127.0.0.1是環(huán)回測(cè)試用的固定的特殊IP演熟。全0的IP地址是保留地址意思為“本網(wǎng)絡(luò)”,代表當(dāng)前設(shè)備的IP司顿。
- 后三個(gè)八位字節(jié)全1芒粹,全0不作為主機(jī)地址,1個(gè)A類網(wǎng)絡(luò)可以提供2^24-2個(gè)主機(jī)地址大溜。主機(jī)號(hào)全為“1”的網(wǎng)絡(luò)地址用于向同一子網(wǎng)所有主機(jī)發(fā)送報(bào)文化漆,叫做廣播地址。主機(jī)號(hào)全部為“0”的地址是代表該子網(wǎng)的網(wǎng)絡(luò)地址钦奋。
- B類地址:
10******.********.********.********
座云,從128.0.0.0到191.255.255.255疙赠;- 默認(rèn)子網(wǎng)掩碼為255.255.0.0。14位網(wǎng)絡(luò)號(hào)朦拖,16位主機(jī)號(hào)圃阳。
- C類地址:
110*****.********.********.********
,從192.0.0.0到223.255.255.255璧帝;- 默認(rèn)子網(wǎng)掩碼為255.255.255.0捍岳。21位網(wǎng)絡(luò)號(hào),8位主機(jī)號(hào)睬隶。
- D類地址:
1110****.********.********.********
锣夹,從224.0.0.0到239.255.255.255;- 28位多播組號(hào)苏潜,廣播地址银萍!
- E類地址:
11110***.********.********.********
,從240.0.0.0到255.255.255.255恤左;- 27位留待后用贴唇,保留地址!
IPV6地址赃梧,128位滤蝠,8*16
例如:FFED:0:0:0:0:BA98:3210:4562
- 27位留待后用贴唇,保留地址!
5豌熄,網(wǎng)絡(luò)層IP路由選擇
- RIP協(xié)議授嘀,Routing information Protocol,路由信息協(xié)議
底層是貝爾曼福特算法锣险,它選擇路由的度量標(biāo)準(zhǔn)(metric)是跳數(shù)蹄皱,最大跳數(shù)是15跳,如果大于15跳芯肤,它就會(huì)丟棄數(shù)據(jù)包巷折。 - OSPF協(xié)議,Open Shortest Path First崖咨,開放式最短路徑優(yōu)先
底層是迪杰斯特拉算法锻拘,是鏈路狀態(tài)路由選擇協(xié)議,它選擇路由的度量標(biāo)準(zhǔn)是帶寬击蹲,延遲署拟。
6,網(wǎng)絡(luò)層ICMP
ICMP歌豺,Internet Control Message Protocol推穷,Internet控制報(bào)文協(xié)議。它是TCP/IP協(xié)議族的一個(gè)子協(xié)議类咧,用于在IP主機(jī)馒铃、路由器之間傳遞控制消息蟹腾。控制消息是指網(wǎng)絡(luò)通不通区宇、主機(jī)是否可達(dá)娃殖、路由是否可用等網(wǎng)絡(luò)本身的消息。
ping命令议谷,發(fā)送一份ICMP回顯請(qǐng)求報(bào)文給主機(jī)珊随,并等待返回ICMP回顯應(yīng)答。
7柿隙,鏈路層ARP協(xié)議
ARP叶洞,地址解析協(xié)議,提供IP地址到MAC地址之間的動(dòng)態(tài)映射禀崖。
- 32位IP地址-----ARP----->48位MAC地址
- 32位IP地址<-----RARP----48位MAC地址
8衩辟,在瀏覽器中輸入www.baidu.com后
簡(jiǎn)化版本:
- 瀏覽器向DNS服務(wù)器請(qǐng)求解析該URL中的域名所對(duì)應(yīng)的IP地址。
- 解析出IP地址后波附,根據(jù)該IP地址和默認(rèn)端口80艺晴,和服務(wù)器建立TCP連接。
- 瀏覽器發(fā)出HTTP請(qǐng)求掸屡,該請(qǐng)求報(bào)文作為TCP三次握手的第三個(gè)報(bào)文的數(shù)據(jù)發(fā)送給服務(wù)器封寞。
- 服務(wù)器給出響應(yīng),把對(duì)應(yīng)的html文本發(fā)送給瀏覽器仅财。
- 釋放TCP連接狈究。
- 瀏覽器渲染網(wǎng)頁。
詳細(xì)版本:
應(yīng)用層
- 1盏求,在瀏覽器中輸入www.baidu.com抖锥,瀏覽器運(yùn)行應(yīng)用層的HTTP超文本傳輸協(xié)議。
- 2碎罚,瀏覽器通過DNS解析到www.baidu.com的IP地址220.181.27.48磅废。若地址不含端口,則根據(jù)協(xié)議默認(rèn)確定一個(gè)荆烈,HTTP默認(rèn)端口80拯勉。
- 3,瀏覽器產(chǎn)生HTTP包憔购,向上一步確定的IP和端口號(hào)發(fā)起網(wǎng)絡(luò)連接HTTP宫峦。
傳輸層
- 4,瀏覽器把HTTP會(huì)話請(qǐng)求分成報(bào)文段倦始,添加源和目的端口斗遏,交給TCP,TCP的主要功能是與百度服務(wù)器的TCP程序進(jìn)行連接并建立會(huì)話鞋邑。
網(wǎng)絡(luò)層
- 5诵次,TCP將TCP信息包轉(zhuǎn)發(fā)給IP層账蓉。IP層的重要功能是尋址和路由,IP將自己的信息加到原有的數(shù)據(jù)包上逾一,形成新的IP數(shù)據(jù)包铸本。
鏈路層
- 6,數(shù)據(jù)包將由IP層交到鏈路層遵堵,通過ARP協(xié)議找到MAC地址箱玷。這個(gè)層定義了通過物理網(wǎng)絡(luò)輸出數(shù)據(jù)所需的協(xié)議與硬件要求。電腦這個(gè)時(shí)候?qū)P數(shù)據(jù)加上以太網(wǎng)幀頭和幀尾打包成以太網(wǎng)幀陌宿。
物理層
- 7锡足, 這個(gè)時(shí)候,電腦就可以傳輸以太網(wǎng)幀的物理數(shù)據(jù)了壳坪,使用真正的電信號(hào)走網(wǎng)線傳輸了
服務(wù)器端
- 8舶得,服務(wù)器一層層向上去除頭部解析處理請(qǐng)求。
- 9爽蝴,服務(wù)器解析請(qǐng)求沐批,將數(shù)據(jù)返回瀏覽器。
客戶端
- 10蝎亚,若返回的內(nèi)容有外鏈URL九孩,例如圖片網(wǎng)址,則按照以上相似步驟獲取发框。
- 11躺彬,瀏覽器渲染網(wǎng)頁。
9缤底, 簡(jiǎn)介DNS顾患,什么是DNS劫持?
DNS(Domain Name System)服務(wù)个唧,可以使用域名代替復(fù)雜的IP地址來訪問網(wǎng)絡(luò)服務(wù)器,使得網(wǎng)絡(luò)服務(wù)的訪問更加簡(jiǎn)單设预,而且可以完美地實(shí)現(xiàn)與Internet的融合徙歼,對(duì)于一個(gè)網(wǎng)站的推廣發(fā)布起到極其重要的作用。
查詢過程:
- 第一步:客戶機(jī)提出域名解析請(qǐng)求,并將該請(qǐng)求發(fā)送給本地的域名服務(wù)器鳖枕。
- 第二步:當(dāng)本地的域名服務(wù)器收到請(qǐng)求后,就先查詢本地的緩存,如果有該紀(jì)錄項(xiàng),則本地的域名服務(wù)器就直接把查詢的結(jié)果返回魄梯。
- 第三步:如果本地的緩存中沒有該紀(jì)錄,則本地域名服務(wù)器就直接把請(qǐng)求發(fā)給根域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個(gè)所查詢域(根的子域)的主域名服務(wù)器的地址。
- 第四步:本地服務(wù)器再向上一步返回的域名服務(wù)器發(fā)送請(qǐng)求,然后接受請(qǐng)求的服務(wù)器查詢自己的緩存,如果沒有該紀(jì)錄,則返回相關(guān)的下級(jí)的域名服務(wù)器的地址宾符。
- 第五步:重復(fù)第四步,直到找到正確的紀(jì)錄酿秸。
- 第六步:本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時(shí)還將結(jié)果返回給客戶機(jī)。
本地服務(wù)器和客戶端之間是迭代查詢魏烫,本地服務(wù)器和其他域名服務(wù)器之間可以是迭代查詢辣苏,也可以是遞歸查詢肝箱。
DNS劫持:是互聯(lián)網(wǎng)攻擊的一種方式,通過攻擊DNS服務(wù)器稀蟋,或偽造域名解析服務(wù)器(DNS)的方法煌张,把目標(biāo)網(wǎng)站域名解析到錯(cuò)誤的地址從而實(shí)現(xiàn)用戶無法訪問目標(biāo)網(wǎng)站的目的。