簡述 TCP 和 UDP 的區別以及優缺點和使用場景?

一、TCP與UDP區別總結:

1、TCP面向連接(如打電話要先撥號建立連接);UDP是無連接的,即發送數據之前不需要建立連接

2、TCP提供可靠的服務。也就是說,通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;UDP盡最大努力交付,即不保證可靠交付。Tcp通過校驗和,重傳控制,序號標識,滑動窗口、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。

3、UDP具有較好的實時性,工作效率比TCP高,適用于對高速傳輸和實時性有較高的通信或廣播通信。

4.每一條TCP連接只能是點到點的;UDP支持一對一,一對多,多對一和多對多的交互通信

5、TCP對系統資源要求較多,UDP對系統資源要求較少。

二、TCP和UDP的優缺點

  • TCP協議的優點:
    可靠、穩定,TCP的可靠體現在TCP在傳輸數據之前,會有三次握手來建立連接,而且在數據傳輸之前,會有三次握手來建立連接,而且在數據傳輸時,有確認、窗口、重傳、擁塞控制機制,在數據傳完猴,還會斷開連接用來節約系統資源。
  • TCP缺點:
    慢,效率低,占用系統資源高,易被攻擊,TCP在傳輸數據之前,要先建立連接,這會消耗時間,而且在數據傳遞時,確認機制,重傳機制,擁塞機制等都會消耗大量時間,而且要在每臺設備上維護所有的傳輸連接,事實上,每個連接都會占用系統的CPU、內存等硬件資源。而且,因為TCP有確認機制、三次握手機制,這些也導致了TCP容易被人利用,實現DOS,DDOS,CC等攻擊。
  • UDP的優點:
    快速,比TCP稍安全,UDP沒有TCP的握手,確認,窗口,重傳,擁塞控制等機制,UDP是一個無狀態的傳輸協議,所以它在傳遞數據時非常快。沒有TCP的這些機制,UDP較TCP被攻擊者利用的漏洞就要少一點。
  • UDP的缺點:
    但是UDP也是無法避免攻擊;不可靠,不穩定 因為UDP沒有TCP那些可靠的機制,在數據傳遞時,如果網絡質量不好,就很容易丟失包。

什么時候應該使用TCP:

當對網絡通信質量有要求的時候,比如: 整個數據要準確無誤的傳遞給對方,這往往用于一些要求可靠的應用,如QQ,游覽器, HTTP,HTTPS,FTP等傳輸文件的協議,POP,SITP等郵件傳輸的協議。

什么時候應該使用UDP:

當對我拿過來通信質量要求不高的時候,要求網絡通訊能盡量的快,這時就可以使用UDP,比如qq語音,qq視頻FTFP

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL Injection

SQL Injection 就是通過把惡意的sql命令插入web表單遞交給服務器,或者輸入域名或頁面請求的查詢字符串遞交到服務器,達到欺騙服務器,讓服務器執行這些惡意的sql命令,從而讓攻擊者,可以繞過一些機制,達到直…

Vue使用element-ui

main.js配置 //引入Vue import Vue from vue //引入App import App from ./App.vue//完整引入 //引入ElementUI組件庫 // import ElementUI from element-ui; //引入ElementUI全部樣式 // import element-ui/lib/theme-chalk/index.css;//按需引入 import { Button,Row,DatePi…

記一次前端直接上傳圖片到oss報錯

前端直接上傳圖片到阿里云oss,相關過程官網和網上資料已經很詳細,不做贅述。 但這個過程比較復雜,前后端對接過程中很容易出現報錯,這里遇到了以下報錯,不容易排查。 請求顯示net::ERR_NAME_NOT_RESOLVED錯誤,catch輸…

如何在windows電腦安裝多個tomcat服務器和亂碼問題

前提條件安裝jdk 以17版本為例,將jdk8卸載干凈 1.首先進入tomcat官網下載 tomcat網址 這里下載tomcat10為例子 1.1 這里選擇方式一 下載解壓版 2.解壓后拷貝三份 分別命名為 8081、 8082、 8083 3.分別對每個tomcat執行以下操作 3.1 找到tomcat所在webapps文…

Flask框架-配置日志(1):flask使用日志

一、項目結構 study_flask --| apps/ --| __init__.py --| base/ --| logger.py --| __init__.py --| app.py 二、配置日志功能 1、base/logger.py import os import logging from datetime import datetime,date,timedelta from logging.handlers import RotatingFileHandl…

python 開啟5個進程處理list數據

要在 Python 中開啟多個進程來處理列表數據,你可以使用 multiprocessing 模塊。下面是一個開啟5個進程處理列表數據的示例代碼: python import multiprocessingdef process_item(item):# 在這里處理每個列表項的邏輯print(f"Processing item: {ite…

LeetCode[56]合并區間

難度:Medium 題目: 以數組 intervals 表示若干個區間的集合,其中單個區間為 intervals[i] [starti, endi] 。請你合并所有重疊的區間,并返回 一個不重疊的區間數組,該數組需恰好覆蓋輸入中的所有區間 。 示例 1&…

Android Studio Giraffe控制臺亂碼

這幾天在使用Android Studio Giraffe進行一個App的開發,在項目構建的時候,控制臺輸出中文都是亂碼,看著很不爽,進行了兩項配置,中文就可以正常輸出了,看起來就爽多了。 第一個配置:點擊Help菜單…

Redis對象和五種常用數據類型

Redisobject 對象 對象分為鍵對象和值對象 鍵對象一般是string類型 值對象可以是string,list,set,zset,hash q:redisobj的結構 typedef struct redisObject { //類型 unsigned type:4; //編碼 unsigned encoding:4; //指向底層實現…

webrtc Thread 和 TaskQueue 的 應用和思考

webrtc Thread 和 TaskQueue 的 應用和思考 Thread #include "rtc_base/thread.h"void FunctionToRunOnThread() {// Your threaded logic here.printf("Function running on the thread!\n"); }int main() {rtc::Thread* thread rtc::Thread::Create()…

WebService—XFire配置筆記

在學習之前,一直以為WebService就是一個工具,在兩個服務器之間建立一個通信,幫我們把需要傳輸的數據組織成規范的XML數據并發送到目的地,實際情況也確實是這樣的,不過更高級一點的是,XFire不但可以幫我們生成XML發送,而且可以在接收了xml之后還可以直接返回對象給我們用…

iptabels路由轉發

要配置iptables進行路由轉發,需要執行以下步驟: 確保系統已經開啟了IP轉發功能。可以通過執行以下命令來檢查: sysctl net.ipv4.ip_forward如果返回的值為1,表示已經開啟了IP轉發功能。如果返回的值為0,可以通過執行…

神經網絡基礎-神經網絡補充概念-29-為什么使用深層表示

概念 深層表示(Deep Representation)是指在深度神經網絡的多個隱藏層中逐層提取和學習數據的特征表示。 使用深層表示的原因 高維特征提取:深層神經網絡可以從原始數據中自動學習高維抽象特征。每個隱藏層都對數據進行一些變換&#xff0c…

“深入探索JVM內部機制:解密Java虛擬機的奧秘“

標題:深入探索JVM內部機制:解密Java虛擬機的奧秘 摘要:本文將深入探索Java虛擬機(JVM)的內部機制,介紹JVM的基本原理、運行時數據區域以及垃圾回收機制,并通過示例代碼解釋這些概念。 正文&am…

PG-DBA培訓14:PostgreSQL數據庫升級與遷移

一、風哥PG-DBA培訓14:PostgreSQL數據庫升級與遷移 課程目標: 本課程由風哥發布的基于PostgreSQL數據庫的系列課程,本課程屬于PostgreSQL備份恢復與遷移升級階段之PostgreSQL數據庫升級與遷移,學完本課程可以PostgreSQL數據庫升…

炒股票怎么加杠桿_融資融券賬戶怎么開通

炒股票作為一種投資方式,可以帶來不錯的回報。然而,對于那些希望以較小的資金獲得更高收益的投資者來說,加杠桿炒股票是一個值得考慮的選擇。本文將為您介紹加杠桿炒股票的意義,以及如何開通融資融券賬戶。 加杠桿炒股票的意義&a…

Centos8安裝docker并配置Kali Linux圖形化界面

鑒于目前網上沒有完整的好用的docker安裝kali桌面連接的教程,所以我想做一個。 準備工作 麻了,這服務器供應商提供的鏡像是真的純凈,純凈到啥都沒有。 問題一:Centos8源有問題 Error: Failed to download metadata for repo ap…

vue入門(增查改!)

<template><div><!-- 搜索欄 --><el-card id"search"><el-row><el-col :span"20"><el-input v-model"searchModel.name" placeholder"根據名字查詢"></el-input><el-input v-mode…

STM32 FLASH 讀寫數據

1. 《STM32 中文參考手冊》&#xff0c;需要查看芯片數據手冊&#xff0c;代碼起始地址一般都是0x8000 0000&#xff0c;這是存放整個項目代碼的起始地址 2. 編譯信息查看代碼大小&#xff0c;修改代碼后第一次編譯后會有這個提示信息 2.1 修改代碼后編譯&#xff0c;會有提示…

python3.73安裝教程,python3.10安裝教程

大家好&#xff0c;小編來為大家解答以下問題&#xff0c;python3.73安裝教程&#xff0c;python3.10安裝教程&#xff0c;現在讓我們一起來看看吧&#xff01; Python目前已支持所有主流操作系統&#xff0c;在Linux,Unix,Mac系統上自帶Python環境&#xff0c;一般默認裝的是P…