接網際網路協議入門-筆記(day1)
場景資料報位址
同乙個子網路
對方的mac位址,對方的ip位址
非同乙個子網路
閘道器的mac位址,對方的ip位址
傳送資料報之前,電腦必須判斷對方是否在同一子網路,然後選擇相應的mac位址。接下來,我們就來看實際使用中,這個過程是如何完成的。
1.靜態ip位址
你買了一台新電腦,插上網線,開機,這時電腦就可以上網嗎?
通常你需要做一些設定,有時,管理員(或者isp)會告訴你四個引數,你把他們填入作業系統,計算機就能連上網了:
動態ip位址上網
所謂「動態ip位址」,是指計算機開機之後,會自動分配到乙個ip位址,不用人為設定。他使用的協議叫做dhcp協議;
這個協議規定,每乙個子網路中,有一台計算機負責管理本網路的所有ip位址,它叫做」dhcp伺服器」。新的計算機加入網路,必須向」dhcp伺服器」傳送乙個」dhcp請求」資料報,申請ip位址和相關的網路引數。
前面說過,如果兩台計算機在同乙個子網路,必須知道對方的mac位址和ip位址,才能傳送資料報。但是,新加入的計算機不知道這兩個位址,怎麼傳送資料報呢?
dhcp協議做了一些巧妙的規定
dhcp協議
(2)後面的」ip標頭」,設定發出方的ip位址和接收方的ip位址。這時,對於這兩者,本機都不知道。於是,發出方的ip位址就設為0.0.0.0,接收方的ip位址設為255.255.255.255。
(3)最後的」udp標頭」,設定發出方的埠和接收方的埠。這一部分是dhcp協議規定好的,發出方是68埠,接收方是67埠。
這個資料報構造完成後,就可以發出了。乙太網是廣播傳送,同乙個子網路的每台計算機都收到了這個包。因為接收方的mac位址是ff-ff-ff-ff-ff-ff,看不出是發給誰的,所以每台收到這個包的計算機,還必須分析這個包的ip位址,才能確定是不是發給自己的。當看到發出方ip位址是0.0.0.0,接收方是255.255.255.255,於是dhcp伺服器知道」這個包是發給我的」,而其他計算機就可以丟棄這個包。
接下來,dhcp伺服器讀出這個包的資料內容,分配好ip位址,傳送回去乙個」dhcp響應」資料報。這個響應包的結構也是類似的,乙太網標頭的mac位址是雙方的網絡卡位址,ip標頭的ip位址是dhcp伺服器的ip位址(發出方)和255.255.255.255(接收方),udp標頭的埠是67(發出方)和68(接收方),分配給請求端的ip位址和本網路的具體引數則包含在data部分。
新加入的計算機收到這個響應包,於是就知道了自己的ip位址、子網掩碼、閘道器位址、dns伺服器等等引數。
1.本機引數
我們假定,經過以上步驟,使用者設定好了自己的網路引數
子網掩碼:255.255.255.0
然後他開啟谷歌瀏覽器,在位址列輸入了**:www.google.com
這就意味著,瀏覽器要向google傳送乙個網頁請求的資料報
2.dns協議
我們知道,傳送資料報,必須知道對方的ip位址,但是現在,我們只知道**www.google.com,並不知道他的ip位址;
dns協議可以幫助我們,將這個**轉換成ip位址,已知dns伺服器為8.8.8.8,於是,我們向這個位址傳送乙個資料報(53埠)。
然後,dns伺服器做出響應,告訴我們谷歌的ip位址是172.194.72.105.於是。我們就知道了對方的ip位址;
3.子網掩碼
接下來,我們要判斷這個ip位址是不是在同乙個子網路下,這就用到了子網掩碼。
已知子網掩碼是255.255.255.0,本機用它對自己的ip位址192.168.1.100,做乙個二進位制的adn運算,計算結果為192.168.1.0;然後對谷歌的ip位址172.194.72.105也做乙個adn計算,計算結果為172.194.72.0,這兩個結果不相等,所以結論是google和本機不在同乙個子網路;
因此,我們向谷歌發資料報,就必須通過閘道器192.168.1.1**,也就是說,接受方的mac位址將是閘道器的mac位址;
4.應用層協議
瀏覽網頁用的是http協議,它的整個資料報構造是這樣的:
http部分的內容,類似於下面這樣
我們假定這個部分的長度是4960位元組,它會被巢狀在tcp資料報之中;
5.tcp協議
tcp資料報需要設定埠,接收方(google)的http埠預設是80,傳送方(本機)的埠是乙個隨機生成的1024-65535之間的整數,假定為51775;
tcp資料報的標頭長度為20位元組,加上嵌入的http的資料報,總長度變為4980位元組;
ip協議
然後,tcp資料報再嵌入ip資料報。ip資料報需要設定雙方的ip位址,這是已知的,傳送方是192.168.1.100(本機),接受方是172.194.72.105(google);
ip資料報的標頭長度為20位元組,加上嵌入的tcp資料報,總長度變為5000位元組;
乙太網協議
最後,ip資料報要嵌入乙太網資料報,乙太網資料報需要設定雙方的mac位址,傳送方為本機的網絡卡mac位址,接受方位閘道器192.168.1.1的mac位址(通過arp協議得到);
乙太網資料報的資料部分,最大長度為1500位元組,而現在的ip資料報長度為5000位元組。因此,ip資料報必須分割成四個包。因為每個包都有自己的ip標頭(20位元組),所以四個包的ip資料報的長度分別為1500、1500、1500、560。
伺服器端響應
經過多個閘道器的**,google的伺服器172.194.72.105,收到了這四個乙太網資料報。
根據ip標頭的序號,google將四個包拼起來,取出完整的tcp資料報,然後讀出裡面的」http請求」,接著做出」http響應」,再用tcp協議發回來。
本機收到http響應以後,就可以將網頁顯示出來,完成一次網路通訊。
這個例子就到此為止,雖然經過了簡化,但它大致上反映了網際網路協議的整個通訊過程。
網際網路協議入門
網路層傳輸層 應用層 每層叫什麼名字其實不重要,只需要知道網際網路分成若干層就可以。實體層元件網路第一件事情就是要把電腦連線起來,可以用多種方式實現 光纜,電纜,雙絞線,無線電波等 實體層就是把電腦連線起來的物理手段,負責傳輸 0 和 1 的訊號。鏈路層 單純的 0 和 1 沒有任何意義。必須規定解...
網際網路協議入門(一)
一 osi中的層 功能 tcp ip協議族 應用層 檔案傳輸,電子郵件,檔案服務,虛擬終端 tftp,http,snmp,ftp,smtp,dns,telnet 表示層 資料格式化,轉換,資料加密 沒有協議 會話層 解除或建立與別的接點的聯絡 沒有協議 傳輸層 提供端對端的介面 tcp,udp 網路...
網際網路協議入門(二)
這是從設計者的角度看問題,今天我想切換到使用者的角度,看看使用者是如何從上至下,與這些協議互動的。網際網路協議入門 二 接上文 七 乙個小結 先對前面的內容,做乙個小結。我們已經知道,網路通訊就是交換資料報。電腦a向電腦b傳送乙個資料報,後者收到了,回覆乙個資料報,從而實現兩台電腦之間的通訊。資料報...