黄片视频免费看中文字幕中文字幕,国产原创第4页,国产成人精品久久久,视频一区二区日韩无码

發布時間:2022-08-22 16:30:32  訪問次數:489

發布人:優洱士電腦維修

 

10分鐘理解TCP、UDP 和端口號

在我們開始學習網絡編程的時候,我們發現一些名詞出現的頻率極其高,比如 TCP/IP、UDP、OSI 七層網絡模型等。這肯定不是偶然,因為它們極其重要,才會被人反復提及。尤其在面試的時候,面試官喜歡把它們拿來,當作考察面試者基礎功底的重要環節。為了不讓文章顯得冗余,我們今天只談網絡中的 TCP、UDP 和端口。

10分鐘理解TCP、UDP 和端口號

協議、TCP 和 UDP

在了解 TCP(Transmission Control Protocol 即傳輸控制協議) 和 UDP(User Datagram Protocol 即用戶數據包協議) 之前,我們先要知道一個名詞,即協議。它到底是什么?它其實就是一套約定成俗的規則。就像開會的時候,我們達成了一些共識,先開發那個接口,項目什么時候上線等等。

可以毫不夸張地說計算機網絡的構建與發展,奠基石就是各種網絡協議。它們定義了信息通訊的方式,以及如何收發信息等,比如:

  •  IP 協議負責將多個包交換網絡連接起來,并管理通訊 IP 源地址和目標地址的協議

  •  TCP 和 UDP 協議則是位于應用層和 IP 層之間,負責它們之間信息傳輸的重要協議

既然是協議,大家都必須遵守,否則,今天張三定一個協議,李四不同意,他明天再定一個協議,這就亂了套。因此,不同的大廠和許多公司就聯合起來組成一個組織,將這些協議統一規范起來。你就必須得用這些規定好的協議,否則就無法通信。這才實現了“地球村”的夢想。今天無論用什么設備,在世界的任何角落,用哪種國家的語言,都可以很方便地使用網絡進行通信。

TCP 和 UDP 的特點

用一個不算嚴謹的說法總結 TCP 就是,女孩子如果遇到 TCP 這樣的男生,就嫁了吧。因為TCP的核心特點就是靠譜。他的特定包括,面向連接、可靠、基于字節流控制的傳輸,就像一個管道一樣將應用層和 IP 層連接起來。

而與之相對應的,UDP 就像二十多歲的浪子。他們不夠可靠,但卻充滿熱情。一切以效率為先,他們可以馬上答應你很多事情,并且愿意立馬付出實踐。你這一秒說佛珠浪漫,他不管身處何處,立馬搭飛機給你去取,下一秒說想去聽周杰倫的演唱會,他立馬給你訂票。當然,人的精力和時間都有限,所以就可能出現不可控的意外,比如根本沒有足夠的錢買門票等。這和UDP相仿,它提供無連接通信,但不對傳送的數據包提供可靠性保證。

10分鐘理解TCP、UDP 和端口號

TCP 和 UDP 的特點總結

 

TCP 和 UDP 的使用場景

不同的人,因性格不同,做事的方式也不一樣,你不能說這樣就一定好,那樣就一定不好,對于 TCP 和 UDP 也是一樣,在不同的場景中,他們各有各的妙用。

比如在開發一個游戲的的程序是,對于玩家登陸賬號,因為我們要確保不同的玩家能登陸到自己的賬號,這個時候就要應用 TCP 協議。而對于控制游戲中角色的移動,我們只需根據玩家鼠標的點擊移動角色,如果因為小概率的網絡問題,對于玩家來說,再次進行角色移動操作即可,成本和風險在可控范圍內,因此就可以使用 UDP 協議。

我們從以上可以看出,如果是基礎服務功能,則***使用 TCP 協議,保證服務的可靠性。以確***程中,每一個網絡包能夠正確抵達目的地。而相較于 UDP ,程序員則需要自己去進一步做丟包情況和字節傳輸順序的處理。

可不要因此就覺得 UDP 非常難用,正相反,其實有大量的服務是基于 UDP 協議的。比如 DNS 解析服務。每一臺電腦訪問外網網頁,都需要通過 DNS 服務解析域名,從中找到對應的 IP 地址。這個時候如果 DNS 出了問題,我們其實只需要再一次進行 DNS 尋址查詢即可。唯一的副作用,可能就是有一丁點兒延遲罷了。

10分鐘理解TCP、UDP 和端口號

另一個 UDP 的應用就是 IP 電話, 我們常把它稱作 VoIP(Voice over IP),它的原理可以簡化的理解為,把撥打電話從以往的電話通訊,轉移到網絡通訊上,類似于我們現在的微信通話。當你和某人通話的時候,用的就是 UDP ,想象一下,其實我們這個時候需要的并不是可靠性,而是實時性。如果不幸中間有一點信息損失了,比如你媽說:“過年給我把對象帶回來,不然就別回來了”。由于信息損失一部分,像這樣——“過年給 把對象帶 來,不然 別回 了”,其實我們是可以理解一整句話的意思的。而如果用 TCP,我們可能說一句話,別人 30 秒之后才能聽到,這顯然是不能忍受的。

因此,我們明白了,在日常的開發過程中,我們應該根據不同的應用場景,選擇對應的 TCP 或者 UDP 作為網絡傳輸協議,而不能因為我們對 UDP 不熟悉,就從心理上抗拒它。

端口及其特點

如果 IP 是用來定位街區的,那么端口就是對應于該街區中每一戶的門牌號。在通訊過程中,數據通過各種通訊協議最終抵達設備(如計算機)后,這里的設備就相當于一個街區,而在設備計算機內部有很多程序在跑,數據進來之后,必須要給它一個對應的門牌號(即端口號),程序才方便進行后續操作。

端口號屬于傳輸協議的一部分,因此我們可以說,數據通過 IP 地址發送對應的數據到指定設備上,而通過端口號把數據發送到指定的服務或程序上。

 

程序一般不止是監聽指定的端口號,而且也會明確對應的傳輸協議。所以我們在進行數據傳輸的時候,既要指定對應的端口號,也要指定對應的通訊協議,很多人僅僅會說:程序 A 監聽著 33001 端口,這個是不正確的,至少是不完全正確的。相應的,我們應該這樣說:程序 A 使用 TCP 協議,監聽 33001 端口,當然你也可以說:程序 A 使用 UDP 協議,監聽 33001 端口。

指定傳輸協議和端口,顯而易見的好處在于,當我們進行端口轉發或者構建網絡防火墻的時候,我們可以很方便的通過協議和端口進行隔離。以防止不可預見的意外發生。對于計算機來說,通過這種方式可以防止外網各種不必要的數據,進入本地局域網。

你可能會想,這么多端口號,如果大家都用同一個,那不是也有沖突。沒錯,這就需要一個專門的組織來管理它們,IANA( Internet Assigned Numbers Authority 即互聯網號碼分配局 ),它負責管理端口注冊。大多數主流的程序,都有一個明確的已注冊端口,比如常見的 FTP 監聽 20、 21 端口,而 HTTP 服務監聽 80 端口等。如果有一個程序想注冊某個端口,那么 IANA 會先去查一查這個端口是否已被注冊,如果已經被注冊了,它則會拒絕申請。

端口號根據范圍分為三種

1. Well-Known Ports(即公認端口號)

它是一些眾人皆知著名的端口號,這些端口號固定分配給一些服務,我們上面提到的 HTTP 服務、 FTP服務等都屬于這一類。知名端口號的范圍是:0-1023。

2. Registered Ports(即注冊端口)

它是不可以動態調整的端口段,這些端口沒有明確定義服務哪些特定的對象。不同的程序可以根據自己的需要自己定義,注冊端口號的范圍是:1024-49151。

3. Dynamic, private or ephemeral ports(即動態、私有或臨時端口號)

顧名思義,這些端口號是不可以注冊的,這一段的端口被用作一些私人的或者定制化的服務,當然也可以用來做動態端口服務,這一段的范圍是:49152–65535。


關注我們

編輯:xiao

來源:本站

發布時間:2022-08-22 16:30:32

文章地址:http://www.jingxuantang.cn/news/1625.html

本公司僅對企業用戶提供服務,暫不對個人用戶提供技術支持,敬請諒解。

聯系我們
與我們取得聯系
QQ客服
聯系QQ客服
電話咨詢
咨詢電話:15921898487