首先,我們要明確上網需要的四個引數(本機),分別是:
1、本機的ip位址
2、子網掩碼
3、閘道器的ip位址
4、dns的ip位址
這裡,我以自己的電腦為例(我的電腦用的是配置ip,當然大多數用的都是動態獲取也就是dhcp),截圖如下:
引數解釋:
a、閘道器本質上是乙個網路通向其他網路的ip位址。預設閘道器必須是本網段的ip位址,一般是本網段的第乙個ip。本機ip和子網掩碼相與就得到本網段【網路號】。
b、dns【domainname system網域名稱系統】,網域名稱和ip相互對應對映的分布式資料庫。dns協議執行在udp協議之上,使用53埠。
另外,我們需要明確,建立乙個完整的socket連線需要的5個引數,分別是:
(本機ip,本機埠號,使用的網路協議,要訪問的機器的ip,要訪問機器的埠號)
第一步:確定本機引數(其實上面已經有了),這裡我們通過命令列的方式來獲取,用ipconfig/all(注意:linux系統下使用的是ifconfig)
這裡我們使用dns協議,向dns伺服器傳送資料報,dns伺服器開啟的是53埠(此時5要素都明確了),資料報結構如下:
第五步:應用層
瀏覽器訪問使用的是http協議,構造的資料報如下:
http請求的內容如下:假定其長度為4960個位元組,他會被嵌在tcp資料報之中。
第六步:傳輸層(tcp協議)
tcp資料報需要設定埠,接收方的預設埠是80,本機的埠是乙個隨機生成的1024到65535之間的整數。假定為8888。
tcp資料報的包頭長度為20位元組,加上http資料報,為4980位元組。
第七步:網路層(ip協議)
然後tcp資料報再嵌入ip資料報,ip資料報需設定雙方ip【已知】。ip資料報的頭長度為20位元組,總共是5000位元組
第八步:網際介面層(乙太網協議)
ip資料報嵌入乙太網資料報,乙太網資料報需設定雙方mac位址【已知】,接收方即閘道器mac位址【通過arp協議得到】。
乙太網資料報的資料部分最大為1500位元組,因此ip資料報必須分成4個包,因為每個包都有自己的ip標頭,因此四個包的ip資料報的長度分別是1500,1500,1500,560。
第九步:伺服器響應
這就是從計算機網路角度分析的乙個網路訪問的過程。具體的細節當然還有很多,這些也只能算是乙個大致的過程。
乙個url完整的訪問過程
乙個url完整的訪問過程 iii.資源路徑 question 554991 如果網路位址不是ip位址通過dns網域名稱解析將該系統解析成ip位址 a 開啟瀏覽器,輸入乙個網域名稱 電腦會發出乙個dns請求到本地的伺服器,本地dns服務一般都是你的 網路接入服務商提供,b 查詢www.163.com ...
爬蟲基礎 乙個完整的網路請求過程
平時用的比較多的是瀏覽器,比如瀏覽器去請求乙個 然後 返回資料,這個過程在我們使用時看起來是非常普遍的,這裡來簡單介紹一下它的具體流程。發起乙個慕課網首頁的請求 在瀏覽輸入imooc.com 瀏覽器首先會查詢dns伺服器 查詢網域名稱imooc.com的ip位址 查詢到後,dns伺服器會將ip位址返...
乙個完整的HTTP請求過程
資料在各層之間的傳遞過程 伺服器響應http請求,瀏覽器得到html 瀏覽器解析html 並請求html 中的資源 如js css 瀏覽器對頁面進行渲染呈現給使用者 網域名稱解析 與伺服器建立連線 伺服器響應http請求,瀏覽器得到html 瀏覽器解析html 並請求html 中的資源 如js cs...