OSI案例詳解+ARP+DNS


案例,淘寶買東西

DNS(走的UDP)

域名的作用其實就是相對ip地址來說更好記憶和識別,DNS就是根據域名解析出ip

一次請求,DNS解析的過程

1.在瀏覽器輸入一個域名,操作系統首先會檢查自己的本地hosts文件是否存在這個域名的映射關系,如果有就解析完成

2.如果1沒有對應的關系,然后就會去配置的服務器找

3.最后到根DNS服務器去尋找,就算這個DNS不知道IP地址,但是它會告訴你哪一台知道,最后把結果返回(全球只有13台根DNS服務器,9台美國,亞洲只有日本有一台)

為啥只有13台?

因為UDP一個包一般為512字節,剛好能放下13個根地址

DNS配置

域名-ipv4 A記錄

域名-ipv6 AAAA記錄

域名-域名 CName

域名-URL URL

域名-文本 TXT

ARP協議

arp在數據傳輸中起着非常重要的作用,它在數據鏈路層中起作用

常見問題,數據怎么知道發送的ip地址?

這個問題其實很普通,數據發送的時候是肯定知道對方的ip地址的,只是我們發送數據的時候我們看不見而已,他是發送數據的一個重要的基礎
數據怎么知道發送的mac地址?

這個問題就比較高級一點了,我們知道數據傳輸其實真正起作用的是mac地址,怎么知道對方的mac地址呢,其實這就是arp協議在做的工作

工作過程

分兩種,一種是在同一個網段(廣播域),還有一種是在不同網段

當數據到達數據鏈路層層

同一網段

數據鏈路層的功能就是填源mac和目標mac,其實到這一步計算機就會判斷目標ip是不是在一個網段,是的話就去本機的mac表找有沒有目標ip的mac地址,沒有的話,就把mac地址填FFFFFFFF,發送廣播,接收到的機器拿出目標ip地址判斷,如果是自己就返回響應

不同網段

如果計算出不是一個網段的,那么目標mac地址就直接填寫網關的mac地址,數據發送到網關,mac地址就換成下一站的mac地址,直到找到目標的機器的網段的網關,最后網關發送一個類似上面的包找到目標機器

應用層 DNS,HTTP,HTTPS

1.我們在瀏覽器輸入https://www.taobao.com網址,然后按下回車

2.瀏覽器並不知道https://www.taobao.com這個URL的具體地點,它會去作為地址簿協議的DNS去查找,最終返回淘寶服務器的IP地址,假如為122.123.34.21

3.瀏覽器知道了目標地址,就會開始打包它的請求,對於普通的瀏覽請求,通常會使用HTTP協議,但是對於購物等私密性比較重要的請求,選擇了HTTPS加密的協議,給數據加上了HTTP頭

4.將請求數據打包,然后交給下一層傳輸層

傳輸層

在應用層和傳輸層之間,抽象出來了一層socket層,socket層相當於把傳輸層封裝了一下,把tcp/ip層復雜的操作抽象成了幾個簡單的接口提供給應用層使用。

1.數據進入傳輸層,傳輸層有兩種協議,一種是無連接協議UDP和面向連接的協議TCP,因為TCP是可靠的協議,所以選擇了TCP協議,TCP協議里面有兩個端口,一個是自己的瀏覽器端口,還有一個是淘寶應用的端口,於是給數據加上了TCP頭

2.傳輸層數據封裝完畢,交給下一層網絡層

網絡層

1.網絡層的協議是IP協議,IP協議中有瀏覽器的IP和淘寶服務器的IP

2.給數據加上IP頭,交給下一層數據鏈路層

數據鏈路層

1.既然知道了目的IP地址,就會想如何找到目標機器,通過判斷IP地址判斷,這台機器是局域網中的還是外網的,如果是外網的話就會去問路由器中的網關。

2.默認的網關的IP地址是192.168.1.1,在局域網中廣播的方式,找誰是192.168.1.1,網關就會回答他,並告訴他網關的MAC地址(通過IP找MAC地址的過程就是ARP協議,地址解析協議)

3.既然知道了網關的MAC地址,就給數據加上了MAC頭,接下來就可以交給物理層傳輸了

物理層

傳輸數據

傳輸過程

1.數據終於從電腦出發了,首先它經過了交換機,交換機,交換機問數據你去哪呀,數據回答,找一個網關的MAC地址,交換機知道了,就告訴他怎么走

2.找到了網關,網關一般是路由器,路由器問數據你去哪呀,數據拿出了淘寶的IP,說,你看,我要去這里,路由器回答說哦,去這里,先去路由器B吧,他會告訴你接下來怎么走的(路由器之間也經常溝通,知道怎么走,這種溝通就是路由協議,有OSPF開放式最短路徑優先和BGP邊界網關協議)

3.最后終於到了最后一個路由器,路由器就會向某一個網絡廣播,數據找到交換機問,誰是淘寶服務器,淘寶服務器收到后,回復一個帶MAC地址的數據,最后成功找到了淘寶服務器

4.目標服務器發現MAC地址對上了,就脫下MAC頭,IP也對上了,脫下了IP頭,然后就是TCP頭了,把數據交給傳輸層,由於是TCP協議,每收到一個數據都會告訴發送者,我收到了,不然的話,發送者會一直發送沒有響應的數據的。最后根據端口號,把數據交給監聽這個端口的進程。

5.終於到達了進程,這時候就剩下一層HTTP頭了,通過解析淘寶進程知道發送者要買東西了,於是操作數據庫等,最后返回一個響應。

6.最后,發送者的瀏覽器,彈出了購買成功,他開心的流出了眼淚!

自己學習總結,部分來自極客邦


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM