回覆列表
  • 1 # 麼麼茶加糖

    TCP 是面向連線的,使用 TCP 連線需要經過三次握手,斷開連線需要經過四次揮手。相比於 TCP,UDP 則是面向無連線的,它像一個隨時可以進行通訊的協議,只要接收方建立了 Socket,設定了監聽埠,就能接收到到達的 UDP 包,並且能隨時建立 Socket 進行發包。

    TCP 可以對資料的傳送速率作控制,它具有流量控制和擁塞控制機制,透過控制滑動視窗的大小控制資料的傳送速率。而 UDP 理論上是可以無限地向網路中發資料包的,它的傳送速率取決它的應用程式設定。

    TCP 保證可靠的資料傳輸,它根據速率控制,重傳控制,還有資料校驗保證提供可靠的資料傳輸服務。而 UDP 只是保證盡力而為地傳輸資料,並不保證資料的可靠性。

    TCP 的報文段頭部佔 20 各位元組,比 UDP 的報文段頭部多 12 個位元組。消耗的資源更多。由於建立連線有握手的機制,TCP 的使用效率會比 UDP 要低一些。

  • 2 # 渝家小龍

    你好,他們兩個主要區別如下幾點:1、TCP面向連線(如打電話要先撥號建立連線);UDP是無連線的,即傳送資料之前不需要建立連線。

    2、TCP提供可靠的服務。也就是說,透過TCP連線傳送的資料,無差錯,不丟失,不重複,且按序到達;UDP盡最大努力交付,即不保證可靠交付。

    3、TCP面向位元組流,實際上是TCP把資料看成一連串無結構的位元組流;UDP是面向報文的。UDP沒有擁塞控制,因此網路出現擁塞不會使源主機的傳送速率降低(對實時應用很有用,如IP電話,實時影片會議等)

    4、每一條TCP連線只能是點到點的;UDP支援一對一,一對多,多對一和多對多的互動通訊。

    5、TCP首部開銷20位元組;UDP的首部開銷小,只有8個位元組6、TCP的邏輯通訊通道是全雙工的可靠通道,UDP則是不可靠通道。

  • 3 # 鮮事

    資料傳輸——傳輸層協議原理

    在網際網路上,每個網路資料包的傳輸都遵循以下五層結構:

    TCP(傳輸控制協議)和UDP(使用者資料報協議)都是傳輸層協議,是一組在Internet上使用的通訊協議,用於在網路內或網路之間傳遞服務或資料包。它通常稱為Internet協議套件。

    · 傳輸層提供一個網路連線以同時允許多個應用程式。就像街道名稱帶有門牌號碼一樣,傳輸層在每個網路連線中的計算機上建立65000個埠。

    · 這些埠可以被計算機上的應用程式保留和使用。

    · 一個應用程式可以根據需要同時使用多個埠。

    傳輸層協議實現目的

    例如,應用程式保留了埠12437,以將訊息傳送到其他計算機上的埠80。每當應用程式層建立訊息時,都會在傳輸層上傳遞訊息。在這一層中將訊息包裝在一個段中。該段包含一些其他資訊,例如源埠和目標埠。建立段後,該段將傳遞到網路層以進行進一步處理。

    · 當它從網路層傳遞到傳輸層時,網段將顯示在接收方。

    · 將檢查網段以確定目標埠。

    · 然後,將郵件解包並傳遞到埠80。

    傳輸協議的重點是使通訊獨立於底層網路技術,只需關注端到端通訊,而不用考慮路由或媒體訪問。

    什麼是TCP?

    TCP是一種面向連線的點對點傳輸通訊協議,它以有序順序將資料包作為非結構化位元組流傳送。TCP透過使用序列號和確認訊息,從傳送節點提供有關傳輸到目標節點的資料包的傳遞的資訊。TCP確保資料的可靠性,端到端傳遞,重新排序和重傳,直到達到超時條件或接收到資料包的確認為止。

    此外,TCP提供流控制機制來維持透過高速網路傳輸的高資料包,並且TCP協議透過觸發資料包的重傳直到接收到無錯誤的確認,從而提供錯誤檢測和丟失的資料功能。TCP協議與應用程式層協議(例如(FTP)檔案傳輸協議,(SMTP)簡單郵件傳輸協議和(HTTP)超文字傳輸協議)保持通訊。

    什麼是UDP?

    使用者資料報協議(UDP)是一種無連線的傳輸層通訊協議,用於建立低容忍和丟失等待時間的連線,以在網路內或網路之間傳遞服務或資料包。它與Internet協議套件結合在一起,可以替代TCP協議。

    UDP會構造一個數據報包,並使用IP埠號和資料包以及可選的校驗和功能來定址該資料報包,以驗證完整資料到達的接收。由於UDP協議是簡單協議,可以在傳送方端決定是否重發資料包,以在資料傳輸上以低延遲換取高可靠性。由於網路廣播功能可以將資料包廣播到同一網路上的某些計算機,UDP減少了總體網路通訊量,並且無需在網路上進行重複。由於UDP是無連線協議,資料內容包的傳遞或順序會有所不同。

    UDP與更高級別的協議(例如瑣碎的檔案傳輸協議,實時流協議,簡單的網路協議和域名系統查詢)結合使用,以管理整個網路上的資料傳輸服務。

    TCP Vs UDP協議

    (1)兩者類比

    UDP:有人向快遞員傳遞了一條訊息,該訊息會在他們走開之前盡力向接收者的方向扔。

    TCP:有人向快遞員傳遞訊息,然後在信箋上寫上序號,進行復印,然後將原件儘可能向接收者方向扔,然後等待答覆,然後將其遞迴給傳送者。如果他們沒有收到答覆,則他們再製作一份併發送。當他們收到答覆時,將其交給發件人,並丟棄其副本。如果答覆不正確,則在將其交給發件人之前,他們會按正確的順序排列它們。

    在UDP情況下,發件人在郵件傳遞中承擔更多責任。在TCP情況下,快遞員承擔更多責任。在TCP情況下,發件人必須向快遞員“支付更多”的記憶體,延遲和開銷。在某些情況下,為保證訊息傳遞而增加的成本是不值得的。

    (2)兩者區別

    (3)連線建立方式

    TCP具有類似的建立協議,稱為“三向握手”。“客戶端”(有人要求連線)將向正在監聽這些訊息的“伺服器”傳送“SYN”(同步請求)訊息;如果伺服器決定接受該請求,它將傳送回“SYN/ACK”訊息,以確認先前的請求並請求其自己的通訊“返回通道”。然後,客戶端傳送回“ACK”訊息,以確認伺服器的請求,並建立雙向通訊通道。

    (4)區別總結

    資料傳輸功能

    TCP支援在兩個主機之間建立牢固的連線以交換流中的資料。TCP保證以與伺服器傳送給使用者的順序相同的方式傳遞資料,反之亦然。TCP是一種面向連線的協議。UDP是無連線的,並且非專用協議不會檢查接收方主機的準備情況。

    可靠性

    TCP的可靠性相對較高,因為它可以確保在傳輸過程中丟失資料部分的情況下進行訊息確認和資料重傳。機不會丟失任何丟失的資料。另一方面,UDP不提供訊息確認,超時或重傳功能的概念。不存在有關分組是否已到達接收方或在傳輸中丟失的通訊。

    序列

    TCP傳輸資料包的順序與接收到的順序相同。萬一資料包以錯誤的順序到達,TCP會對它們重新排序並以正確的順序傳遞。在UDP的情況下,以特定順序傳送的訊息可能會或可能不會在交付主機時得到維護。傳輸分組的順序或順序是不可預測的。

    連線

    TCP連線非常重要,它需要將近三個資料包才能進行適當的套接字連線,並且可以處理擁塞控制和可靠的傳遞。另一方面,UDP連線是輕量級的,可傳輸透過特定IP設計的層。沒有連線正在跟蹤或排序訊息。

    資料流

    傳輸控制協議以位元組流的形式讀取資料,並將訊息傳輸到段邊界。UDP訊息包含一一發送的資料包,並在到達時檢查其完整性。

    傳輸速度

    與UDP相比,TCP的速度較慢,因為它檢查錯誤並重新傳輸資料包。

    標頭大小

    標頭的TCP大小為20個位元組,而UDP為8個位元組。但是,它們具有公共標頭欄位,即源點,目標點和校驗和。

    其他協議的使用

    由其他協議使用FTP,SMTP,HTTP,HTTP,Telnet,TCP協議和TFTP,SNMP,DNS,DHCP,RIP,VOIP使用UDP協議。

    錯誤檢測

    傳輸控制協議透過校驗和檢測錯誤並執行錯誤恢復。如果有任何資料包有誤,則接收者不會確認它們,進而觸發主機/傳送者的重新傳輸。

    這種機制稱為PAR(帶重傳的肯定確認)。由於TCP比UDP慢,TCP適用於不需要高速或傳輸時間較長的應用程式。

    關於錯誤檢測和錯誤恢復,UDP會盡力而為。該協議還支援錯誤檢測。但是,校驗和檢測到的錯誤資料包將被丟棄。UDP不會嘗試重新傳輸資料包。

    UDP不嘗試重發資料包的原因是該協議通常用於對時間敏感的應用程式,例如語音傳輸,遊戲等。嘗試進行重發時,恢復嘗試毫無意義,並且資料包被接收,它們將無用。

    總結

    TCP/UDP協議,是傳輸層的標準協議,根據應用的場景和需求來決具體使用何種協議,是網路程式設計的基本規律,根據不同場景選擇合適的協議。

    TCP應用場景:

    效率要求相對低,但對準確性要求相對高的場景。例如:檔案傳輸、收發郵件、遠端登入。

    UDP應用場景:

    效率要求相對高,對準確性要求相對低的場景。例如:影片會議等。

  • 中秋節和大豐收的關聯?
  • 說說你的減肥經歷?