PM勇闖技術 – URL結構解析兼談DNS、TCP

0 評論 201 瀏覽 0 收藏 6 分鐘

點個鏈接,背后到底發(fā)生了啥?這篇文章用PM能聽懂的語言,講透URL、DNS、TCP那些技術細節(jié),讓你和開發(fā)溝通不再“雞同鴨講”。

定義

URL (Uniform Resource Locator, 統(tǒng)一資源定位符)是互聯(lián)網(wǎng)上用于標識某一資源(如網(wǎng)頁、文件、圖片等)位置的字符串,通過它能讓瀏覽器等工具準確找到并訪問對應的資源。

結構解析

類比一下

咱們用「快遞單」類比URL是非常直觀的方式,因為兩者的核心都是“明確告訴執(zhí)行者(快遞員/瀏覽器):要把東西(包裹/網(wǎng)頁數(shù)據(jù))送到哪里、用什么方式送、要找哪個具體物品。

訪問URRL的過程

DNS是個啥?

DNS(Domain Name System,域名系統(tǒng)),它是互聯(lián)網(wǎng)的「地址簿」,將人類易記的域名(如:www.baidu.com)翻譯成計算機能識別的IP地址(如:180.101.50.242),讓設備能準確找到目標服務器并建立連接。

在互聯(lián)網(wǎng)中,所有設備(電腦、手機、服務器)的通信都依賴IP 地址(類似現(xiàn)實中的門牌號)。但IP地址是一串無規(guī)律的數(shù)字(如IPv4的192.168.1.1或IPv6的2001:0db8:85a3:0000:0000:8a2e:0370:7334),人類很難記憶和輸入。

什么是TCP鏈接?

TCP(Transmission Control Protocol,傳輸控制協(xié)議)是互聯(lián)網(wǎng)中確保數(shù)據(jù)可靠傳輸?shù)摹竿ㄐ乓?guī)則集」,而TCP連接則是基于這套規(guī)則建立的、兩臺設備(如手機與服務器)之間的專屬通信鏈路。這里順便提下她的幾個核心特性:

  • 面向連接:數(shù)據(jù)傳輸前必須先建立連接,傳輸后必須斷開連接,這類似打電話先撥號通了再說話,掛了再結束;
  • 可靠傳輸:這主要通過確認和重傳機制實現(xiàn):發(fā)送方每發(fā)一段數(shù)據(jù)(報文段),接收方必須回復“ACK確認”;若發(fā)送方超時沒收到ACK,會自動重發(fā)這段數(shù)據(jù),避免丟失。
  • 有序傳輸:TCP會給每個報文段分配一個唯一的序列號,接收方會按序列號重新排序數(shù)據(jù)(比如網(wǎng)絡延遲導致數(shù)據(jù)“先發(fā)后到”時,接收方能糾正順序),最終輸出完整有序的內容;
  • 流量控制:接收方會告訴發(fā)送方“我當前的緩沖區(qū)還能裝多少數(shù)據(jù)”,避免發(fā)送方發(fā)得太快,導致接收方緩存溢出、數(shù)據(jù)丟失。這類似“你別說話太快,我記不過來”;
  • 擁塞控制:TCP會根據(jù)網(wǎng)絡擁堵情況動態(tài)調整發(fā)送速率(比如發(fā)現(xiàn)丟包時,認為網(wǎng)絡擁堵,主動放慢發(fā)送速度),避免單個連接霸占帶寬導致全網(wǎng)卡頓們,這類似當路上堵車的時候,大家都慢點開。

咱們日常用的微信消息、網(wǎng)頁加載、視頻通話(非實時低延遲場景)都是基于TCP連接,因為我們需要消息必須送到、網(wǎng)頁不能缺內容。

上了年紀的人應該都知道「杯線電話」吧(壞笑),用這個場景可以簡單且直觀的認知專屬通信鏈路的TCP連接

為避免歧義,咱特意說明下:杯繩電話在這里僅作為一種簡單的比喻,幫助初學者快速理解TCP連接建立和一對一通信的基本概念,但還不能全面反映TCP連接復雜、可靠、高效等特性哦~

最后再補充點小知識:對應的還有UDP協(xié)議,這玩意兒沒有TCP可靠,僅應用在允許一定延遲的場景(比如:游戲,痛過的朋友知道背后的始作俑者了吧!),具體就不展開了,非本文的重點,對技術感興趣的你請自行擴展閱讀。

說到這里,我就忍不住給你講這個小紅書上的技術梗了:TCP挎包-保證不丟包!UDP嘛-丟包率有點高……笑出豬叫聲有木有?

本文由 @肖沐 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!