www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 程序喵大人
[導(dǎo)讀]???? 瀏覽器的請求數(shù)據(jù)包如何到達web服務(wù)器? ???? 很多讀者對于其中的完整流程不是特別的了解,下面一口君通過這22張圖,詳細的講解我們點擊瀏覽器的網(wǎng)址之后,數(shù)據(jù)包是如何經(jīng)過重重險阻到達web server的。 1. LAN網(wǎng)絡(luò)中的用戶要訪問位于遠程網(wǎng)絡(luò)中的服務(wù)器

瀏覽器的請求數(shù)據(jù)包如何到達web服務(wù)器?

很多讀者對于其中的完整流程不是特別的了解,下面一口君通過這22張圖,詳細的講解我們點擊瀏覽器的網(wǎng)址之后,數(shù)據(jù)包是如何經(jīng)過重重險阻到達web server的。


1. LAN網(wǎng)絡(luò)中的用戶要訪問位于遠程網(wǎng)絡(luò)中的服務(wù)器存儲的網(wǎng)頁。用戶首先激活網(wǎng)頁上的鏈接。

如果該域名對應(yīng)的IP地址本地已經(jīng)緩存,就直接訪問該地址的80端口或者8080端口;如果沒有緩存,那么瀏覽器會發(fā)出DNS請求給DNS服務(wù)器,獲得該域名對應(yīng)的IP地址。

獲得地址后,瀏覽器會通過socket首先向服務(wù)器發(fā)送三次握手,建立起TCP連接。


2. 瀏覽器發(fā)出HTTP Get請求。應(yīng)用層添加第7層報頭,用于標識應(yīng)用程序和數(shù)據(jù)類型。數(shù)據(jù)區(qū)需要按照HTTP協(xié)議填充對應(yīng)數(shù)據(jù),格式參考RFC2616。


3. 傳輸層標識上層服務(wù)是萬維網(wǎng)(WWW)客戶端。然后,傳輸層將此服務(wù)與TCP協(xié)議相關(guān)聯(lián)并分配端口號。它使用隨機選擇的與此所建回話相關(guān)聯(lián)的源端口12345,目的端口(80)與www服務(wù)相關(guān)聯(lián)。
進行網(wǎng)絡(luò)通信的進程必須綁定一個端口號,該端口號用于區(qū)分網(wǎng)絡(luò)通信的進程。一個端口號只能被1個進程綁定。通常web服務(wù)器的端口號為80,8080。


4. TCP還發(fā)送確認號,告知www服務(wù)器期待接收的下一TCP數(shù)據(jù)短的序列號,序列號將指示此數(shù)據(jù)段在一系列相關(guān)數(shù)據(jù)段中所處的位置。此外還會根據(jù)建立會話的需要適當設(shè)置標志。該序列號非常有用,TCP要保證數(shù)據(jù)正確到達對方,并且對方要能夠讓數(shù)據(jù)有序重組,重組的依據(jù)就是這個序列號。


5. 網(wǎng)絡(luò)層構(gòu)建IP數(shù)據(jù)包,以便標識源主機和目的主機。就目的地址而言,客戶端主機使用主機表中緩存的www服務(wù)器主機名關(guān)聯(lián)的IP地址。而原地址則使用本機的IPv4地址。網(wǎng)絡(luò)層還標識出此數(shù)據(jù)包中封裝的上層協(xié)議為TCP數(shù)據(jù)段。


6.數(shù)據(jù)鏈路層參照地址解析協(xié)議(ARP)緩存來確定與路由器B接口關(guān)聯(lián)的MAC地址,該接口被制定為默認網(wǎng)關(guān)。然后,它使用此地址構(gòu)建以太網(wǎng)II幀,通過本地介質(zhì)傳輸IPv4數(shù)據(jù)包。該幀中使用筆記本電腦的MAC地址作為源MAC地址,使用路由器B的Fa0/0接口的MAC地址作為目的MAC地址。


7. 該幀的類型字段中還使用值0800指示IPv4上層協(xié)議。該幀以前導(dǎo)碼和幀首(SOF)指示符開始,以幀尾幀校驗序列中用于產(chǎn)錯校驗的循環(huán)冗余校驗(CRC)結(jié)束。然后,它使用CSMA/CD來控制將幀放置到介質(zhì)上的過程。


8. 物理層開始將幀逐位編碼到介質(zhì)中。路由器A和服務(wù)器之間的網(wǎng)段是10Base-T網(wǎng)段;因此,對此比特編碼時使用的是曼徹斯特差分編碼。路由器B會緩沖收到的比特。

10BASE-T是雙絞線以太網(wǎng)。


9. 路由器檢查前導(dǎo)碼和SOF中的比特位,查找表示幀開始位置的連續(xù)兩個1的比特位。然后,路由器B開始緩存這些比特,作為重建幀的一部分。收到整個幀之后,路由器B生成幀的CRC。然后將此與幀結(jié)束位置的FCS進行對比,確定接收的幀完整無缺。當確認該幀未損壞時,再比對幀中的目的MAC地址和接口(Fa0/0)的MAC地址。如果二者相符,則刪除幀頭并將數(shù)據(jù)包向上傳送到網(wǎng)絡(luò)層。


10. 網(wǎng)絡(luò)層將數(shù)據(jù)包的目的IPv4地址與路由表中的路由進行比對。找到與下一跳出接口S0/0/0相關(guān)聯(lián)的符合項。然后將路由器B中的數(shù)據(jù)包傳送到S0/0/0接口的電路。路由器值會查看數(shù)據(jù)包的IP層信息,并根據(jù)目的IP地址來查找路由表,路由器是搭建網(wǎng)路最重要的一個設(shè)備,用來連接不同的網(wǎng)絡(luò)。


網(wǎng)絡(luò)搭建好之后,每個路由器中都要提前建立好到各個網(wǎng)段的路由。通常路由條目由動態(tài)路由協(xié)議RIP、OSPF來動態(tài)創(chuàng)建。


11.路由器B創(chuàng)建PPP幀,通過WAN傳輸數(shù)據(jù)包。PPP報頭中添加了01111110二進制標志,表示幀的開始位置。然后添加地址字段1111111,表示廣播(意思是“發(fā)送到所有站點”)。由于PPP是點對點協(xié)議,用作兩個節(jié)點之間的直接鏈路,所以此字段沒有實際意義。路由器的所有接口地址都不能處于同一網(wǎng)段,一般一個出接口連接一個獨立的網(wǎng)段。路由器和路由器之間兩個網(wǎng)口傳輸數(shù)據(jù)一般用PPP協(xié)議。


12. 此外還包括值為0021(十六進制)的協(xié)議字段,表示封裝的是IPv4數(shù)據(jù)包。幀尾以幀校驗序列中用于差錯校驗的循環(huán)冗余校驗結(jié)束。值為01111110的二進制標志表示PPP幀的結(jié)束位置。


13. 由于兩臺路由器之間已經(jīng)建立了電路和PPP會話,因此物理層開始將幀逐位編碼到介質(zhì)中。接收路由器(路由器A)會緩沖收到的比特。比特的表示類型和編碼類型取決于使用的WAN技術(shù)的類型。


14. 路由器A檢查標志中的比特,確定幀的開始位置。然后,路由器A開始緩存這些比特,作為重建幀的一部分。按照幀尾中的標志所示收到整個幀之后,路由器A生成幀的CRC。然后將此與幀結(jié)束位置的FCS進行比對,確定接收的幀完整無缺。當確認該幀未損壞時,則刪除幀頭并將數(shù)據(jù)包向上傳送到路由器A的網(wǎng)絡(luò)層。


15. 網(wǎng)絡(luò)層將數(shù)據(jù)包的目的IPv4地址與路由表中的路由進行比對。找到直接連接到接口Fa0/0的匹配項。然后,將路由器A中的數(shù)據(jù)包傳送到Fa0/0接口的電路。


16. 數(shù)據(jù)鏈路層參照路由器A的ARP緩存來確定Web服務(wù)器接口關(guān)聯(lián)的MAC地址。然后,它使用此MAC地址構(gòu)建以太網(wǎng)Ⅱ幀,通過本地介質(zhì)將IPv4數(shù)據(jù)包傳輸?shù)椒?wù)器。該幀中使用路由器A的fa0/0接口的MAC地址作為源MAC地址,使用服務(wù)器的MAC地址作為目的MAC地址。該幀的類型字段中還使用值0800指示IPv4上層協(xié)議。該幀以前導(dǎo)碼和幀首(SOF)指示符開始,以幀尾幀校驗序列中用于差錯校驗的循環(huán)貳余校驗結(jié)束。然后,它使用CSMA/CD來控制將幀放置到介質(zhì)上的過程。

CSMA/CD即載波偵聽多路訪問/沖突檢測,是廣播型信道中采用一種隨機訪問技術(shù)的競爭型訪問方法,具有多目標地址的特點。


17. 物理層開始將幀逐位編碼到介質(zhì)中。路由器A和服務(wù)器之間的網(wǎng)段是100Base-T網(wǎng)段;因此,對比特編碼時使用的是4B/5B編碼。服務(wù)器會緩沖收到的比特。


18. Web服務(wù)器檢前導(dǎo)碼和SOF中的比特位,查找表示幀開始位置的連續(xù)兩個1的比特位。然后,服務(wù)器開始緩存這些比特,作為重建幀的一部分。收到整個幀之后,服務(wù)器生成幀的CRC。然后將此與幀結(jié)束位置的FCS進行比對,確定接收的幀完整無缺。


19. 當確認該幀未損壞時,再比對幀中的目的MAC地址與服務(wù)器網(wǎng)卡的MAC地址。如果二者相符,則刪除幀頭并將數(shù)據(jù)包向上傳送到網(wǎng)絡(luò)層。


20. 網(wǎng)絡(luò)層檢查數(shù)據(jù)包的目的IPv4地址,確定目的主機。由于此地址與其自身的IPv4地址相符,因此服務(wù)器處理該數(shù)據(jù)包。網(wǎng)絡(luò)層標識出上層協(xié)議是TCP,并將包含的數(shù)據(jù)段傳送到傳輸層的TCP服務(wù)。


21. 服務(wù)器的傳輸層檢查TCP數(shù)據(jù)段,確定數(shù)據(jù)段中包含的數(shù)據(jù)所屬的會話。此操作通過檢查源端口和目的端口來完成。唯一的源端口和目的端口標識與Web服務(wù)器服務(wù)的現(xiàn)有會話。使用序列號按照正確的順序放置此數(shù)據(jù)段,向上發(fā)送到應(yīng)用層。

前面說過一個端口只能被一個進程綁定,所以該數(shù)據(jù)只會傳送給web服務(wù)器進程,而不會被其他進程截獲。


22. 在應(yīng)用層,HTTP Get請求傳送到Web服務(wù)器服務(wù)(httpd)。然后,該服務(wù)可以確定對請求做出的響應(yīng)。


實際的網(wǎng)絡(luò)環(huán)境中,服務(wù)器直接連接的路由器A和本地路由器B之間可能連接了非常多的網(wǎng)絡(luò)設(shè)備,比如衛(wèi)星、網(wǎng)橋、光纖等,這些設(shè)備的組網(wǎng)會更加復(fù)雜,涉及到的網(wǎng)絡(luò)協(xié)議也更多。所有這些基礎(chǔ)網(wǎng)絡(luò)設(shè)施都由運營商建設(shè),造價特別的昂貴,如果沒有中興、華為大力發(fā)展網(wǎng)絡(luò)設(shè)備,我們基本不可能用如此低的價格來上網(wǎng)沖浪,也不會誕生美團、支付寶、微信、抖音這些互聯(lián)網(wǎng)公司。相信隨著5G的普及,未來會有更多的中國本土的新興互聯(lián)網(wǎng)公司。


本例雖然組網(wǎng)基礎(chǔ)相對簡單,但是萬變不離其宗,基本原理一致。網(wǎng)絡(luò)博大精深,在實際開發(fā)產(chǎn)品中應(yīng)用非常廣泛,后面一口君還會陸續(xù)發(fā)布關(guān)于網(wǎng)絡(luò)的文章,敬請關(guān)注下方微信號。



一口君個人微信


添加一口君個人微信即送Linux、嵌入式等獨家入門視頻


→ 精選技術(shù)資料共享

→ 高手如云交流社群





本公眾號全部原創(chuàng)干貨已整理成一個目錄,請在公眾號里回復(fù)「 m 」獲??!或者關(guān)注進入后臺點擊左下角干貨」!

推薦閱讀



【1】手把手教Linux驅(qū)動1-模塊化編程
【2】手把手教Linux驅(qū)動2-模塊參數(shù)param和符號導(dǎo)出export用法
【3】手把手教Linux驅(qū)動3-之字符設(shè)備架構(gòu)詳解,有這篇就夠了

【4】手把手教Linux驅(qū)動4-進程、文件描述符、file、inode關(guān)系詳解
【5】
玩轉(zhuǎn)內(nèi)核鏈表list_head,如何管理不同類型節(jié)點的實現(xiàn)(萬字文)可以收藏
【6】I2C干貨-基于Cortex-A9(重新整理)
【7】一文搞懂ADC裸機和基于Linux驅(qū)動編寫方法
【8】一文講懂什么是vlan、三層交換機、網(wǎng)關(guān)、DNS、子網(wǎng)掩碼、MAC地址
【9】詳解實時查看網(wǎng)卡流量的幾款工具
【10】如何高效閱讀代碼?Linux大神拍了拍你并教給你這三個步驟


5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機,樹莓派,等等。在公眾號內(nèi)回復(fù)「1024」,即可免費獲取?。?/span>




先贊,在看 天天變美,月月變瘦 ↓↓↓





免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉