計(jì)算機(jī)網(wǎng)絡(luò)重點(diǎn)

1,兩種參考模型

OSI參考模型,七層
Open System Interconnect
* 應(yīng)用層
* 表示層
* 會(huì)話層
* 傳輸層
* 網(wǎng)絡(luò)層
* 數(shù)據(jù)鏈路層
* 物理層

TCP/IP參考模型,四層。(一般按照這個(gè)模型來(lái))
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é)議,無(wú)連接,不可靠,數(shù)據(jù)報(bào)模式。使用UDP的應(yīng)用層協(xié)議:視頻,語(yǔ)音廣播,DNS,TFTP等對(duì)速度要求高的。
TCP,傳輸控制協(xié)議,有連接,可靠,流模式。使用TCP的應(yīng)用層協(xié)議:HTTP,Telnet,F(xiàn)TP等對(duì)可靠性要求高的。

在TCP的連接中,數(shù)據(jù)流必須以正確的順序送達(dá)對(duì)方。TCP的可靠性是通過(guò)順序編號(hào)和確認(rèn)(ACK)來(lái)實(shí)現(xiàn)的。
TCP在開(kāi)始傳送一個(gè)段時(shí),為準(zhǔn)備重傳而首先將該段插入到發(fā)送隊(duì)列之中,同時(shí)啟動(dòng)時(shí)鐘。其后,如果收到了接受端對(duì)該段的ACK信息,就將該段從隊(duì)列中刪去。如果在時(shí)鐘規(guī)定的時(shí)間內(nèi),ACK未返回,那么就從發(fā)送隊(duì)列中再次送出這個(gè)段。

3,傳輸層TCP的三次握手和四次揮手

Paste_Image.png

三次握手:

  • 第一次: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之間可以開(kāi)始傳輸數(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,用來(lái)關(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ì)方來(lái)表示同意現(xiàn)在關(guān)閉連接,因此,己方ACK和FIN一般都會(huì)分開(kāi)發(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

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,開(kāi)放式最短路徑優(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(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)化版本:

  1. 瀏覽器向DNS服務(wù)器請(qǐng)求解析該URL中的域名所對(duì)應(yīng)的IP地址。
  2. 解析出IP地址后,根據(jù)該IP地址和默認(rèn)端口80,和服務(wù)器建立TCP連接。
  3. 瀏覽器發(fā)出HTTP請(qǐng)求,該請(qǐng)求報(bào)文作為TCP三次握手的第三個(gè)報(bào)文的數(shù)據(jù)發(fā)送給服務(wù)器。
  4. 服務(wù)器給出響應(yīng),把對(duì)應(yīng)的html文本發(fā)送給瀏覽器。
  5. 釋放TCP連接。
  6. 瀏覽器渲染網(wǎng)頁(yè)。

詳細(xì)版本:
應(yīng)用層

  • 1,在瀏覽器中輸入www.baidu.com,瀏覽器運(yùn)行應(yīng)用層的HTTP超文本傳輸協(xié)議。
  • 2,瀏覽器通過(guò)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層交到鏈路層,通過(guò)ARP協(xié)議找到MAC地址。這個(gè)層定義了通過(guò)物理網(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)頁(yè)。

9, 簡(jiǎn)介DNS,什么是DNS劫持?

DNS(Domain Name System)服務(wù),可以使用域名代替復(fù)雜的IP地址來(lái)訪問(wèn)網(wǎng)絡(luò)服務(wù)器,使得網(wǎng)絡(luò)服務(wù)的訪問(wèn)更加簡(jiǎn)單,而且可以完美地實(shí)現(xiàn)與Internet的融合,對(duì)于一個(gè)網(wǎng)站的推廣發(fā)布起到極其重要的作用。

Paste_Image.png

查詢過(guò)程:

  • 第一步:客戶機(jī)提出域名解析請(qǐng)求,并將該請(qǐng)求發(fā)送給本地的域名服務(wù)器。
  • 第二步:當(dāng)本地的域名服務(wù)器收到請(qǐng)求后,就先查詢本地的緩存,如果有該紀(jì)錄項(xiàng),則本地的域名服務(wù)器就直接把查詢的結(jié)果返回。
  • 第三步:如果本地的緩存中沒(méi)有該紀(jì)錄,則本地域名服務(wù)器就直接把請(qǐng)求發(fā)給根域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個(gè)所查詢域(根的子域)的主域名服務(wù)器的地址。
  • 第四步:本地服務(wù)器再向上一步返回的域名服務(wù)器發(fā)送請(qǐng)求,然后接受請(qǐng)求的服務(wù)器查詢自己的緩存,如果沒(méi)有該紀(jì)錄,則返回相關(guān)的下級(jí)的域名服務(wù)器的地址。
  • 第五步:重復(fù)第四步,直到找到正確的紀(jì)錄。
  • 第六步:本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時(shí)還將結(jié)果返回給客戶機(jī)。

本地服務(wù)器和客戶端之間是迭代查詢,本地服務(wù)器和其他域名服務(wù)器之間可以是迭代查詢,也可以是遞歸查詢。

DNS劫持:是互聯(lián)網(wǎng)攻擊的一種方式,通過(guò)攻擊DNS服務(wù)器,或偽造域名解析服務(wù)器(DNS)的方法,把目標(biāo)網(wǎng)站域名解析到錯(cuò)誤的地址從而實(shí)現(xiàn)用戶無(wú)法訪問(wèn)目標(biāo)網(wǎng)站的目的。

參考資料:

TCP/IP協(xié)議三次握手與四次握手流程解析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容