我們來看看在自己的瀏覽器中輸入url:www.sina.com.cn,連線都經歷了哪些過程
socket連線是通過ip和埠建立的。當dns解析完成,我們就擁有了目標ip和埠號,這樣我們就可以開始建立連線,接下來就是大家都清楚的3次握手,這裡就不展開了,相關的內容可以去檢視網路通訊的三次握手。
連線成功建立後,瀏覽器開始向web伺服器傳送請求,這個請求一般是get或post命令,之後,web伺服器接受到這個請求,進行處理,返回給瀏覽器相應的內容。這之間傳送的就是資料報了。至於資料報在網路分層中的漫遊經歷接下來會具體的講述
關閉連線就是大家熟悉的網路通訊的4次揮手。
首先,你要清楚網路分層模型,osi7層模型,但對我來說我通常習慣去記憶tcp/ip的四層模型:應用層,傳輸層,網路層(網際層ip),網路介面層(鏈路層),不同版本的教材對這四層的名字不一樣。
應用層ftp、telnet、http
snmp、tftp、ntp
傳輸層tcp
udp網路層
ip、arp、rarp
注意:這裡arp和rarp是有的教材放到網路層的,但是在osi模型當中,被劃分到鏈路層,但是討論arp協議究竟是屬於哪一層一點意義都沒有。
1. 在應用層中,http協議傳輸的是web的內容,根據當前的需求和動作,我們確定要傳送的資料內容,從而形成了應用層的報文data。
2. 這些報文通過傳輸層傳送,tcp協議或者udp協議,在頭部加上指定的埠和其他的資訊,這樣就組成了傳輸層的資料報文,單位就是segment。注:tcp和udp的區別
3. 帶傳送的資料段送到網路層,在網路層被打包,包頭內部含有源以及目的ip位址,該層資料傳送單位被成為packet。
4. 在網路層資料被打包後,網路層就開始負責將這樣的資料報在網路上傳輸。如何穿過路由器,最終到達目的位址,這裡就是需要知道路由表和路由選擇演算法了,在這裡不做展開。注:資料報中會有乙個最大路由跳數,如果在各個路由傳輸的時候,個數超過了這個跳數,那麼就會丟棄這個資料報
5.
經過路由選擇,查詢到下一跳的
ip位址後,還要知道
mac位址,這個
mac位址作為鏈路層資料被裝進資料報的頭部,這個時候的資料單位是
frame。
注:在這個鏈路層中,有乙個比較重要的協議arp,在同一網內可能包含有多個主機,所以如果僅僅知道ip位址是沒有用的,這個時候會發生arp請求,該請求包含源ip和mac位址以及目的ip和mac位址,在網內進行廣播, 所有的網內主機會檢查自己的ip和mac,如果對應,就建立連線傳送資料,這樣也就避免了,傳輸過來的資料需要傳送到同一網內的所有主機。
物理層裝置,中繼器(
repeater),
集線器(
hub)。對於這一層來說,從乙個埠收到資料,會**到所有埠。
鏈路層
mac位址表,乙個
ip下可能會有多個主機,交換機通過目的
mac位址知道應該把這個資料**到哪個埠。而不會像
hub一樣,會**到所有滴埠。。
網路層
四個主要的協議
:
網際協議
ip:負責在主機和網路之間定址和路由資料報。
位址解析協議
arp
網際控制訊息協議
icmp
:傳送訊息,並報告有關資料報的傳送錯誤。
互聯組管理協議
igmp
:被ip
主機拿來向本地多路廣播路由器報告主機組成員。
傳輸層
兩個重要協議
tcp
和udp 。
應用層 基於
tcp:
telnet ftp smtp dns http 基於
udp:
rip ntp
(網落時間協議)和
dns
(dns
也使用tcp
)snmp tftp
瀏覽器輸入url瀏覽器與伺服器如何互動
1.輸入 當我們在瀏覽器中輸入 的時候,瀏覽器會從歷史記錄上匹配之前已經輸入的url,chrome瀏覽器會從快取中把網頁展示出來 2.瀏覽器查詢網域名稱的ip 1.瀏覽器解析網域名稱,瀏覽器先檢視本地硬碟hosts檔案,如果有與這個ip相匹配的規則,則使用host檔案裡面的ip 2.如果本地host...
訪問伺服器 瀏覽器訪問Web伺服器全過程
我們輸入 後,一條資訊從客戶端發出 通過一系列路徑到達要訪問的服務端,告訴服務端我們需要什麼資料 然後服務端將這些資料傳送出來,經過網際網路,到達客戶端 最後將這些資訊顯示在螢幕上。以上資訊看起來比較簡單,但實際上需要的資訊有很多,比如 如果我們想準確獲取 的資料,我們應該至少知道自己的mac位址 ...
瀏覽器訪問伺服器的流程
1 瀏覽器輸上網域名稱,例如www.baidu.com 2 瀏覽器會先訪問dns伺服器,把網域名稱解析成ip位址,在返回給瀏覽器 2 dns的解析原理 原理步驟 1 系統首先會查詢本地的dns快取和hosts檔案資訊,確認其中是否有與,網域名稱www.baidu.com所對應的ip位址。如果有,就直...