[TCP] TCP/IP 基礎知識詞典(3)

我想統計一下,TCP/IP 尤其是TCP協議,能搜到的常見的問題,整理起來,關鍵詞添加在目錄中,便于以后查閱。

目前預計整理共3篇:

[TCP] TCP/IP 基礎知識問答 :基礎知識
[TCP] TCP/IP 基礎知識問答(2) :TCP協議相關知識
[TCP] TCP/IP 基礎知識問答(3) :UDP協議相關知識

文章目錄

  • UDP協議相關知識
    • 什么是UDP
    • UDP的頭
    • UDP可以發送多長的報文
    • TCP 和 UDP 的區別
    • UDP的應用層協議

UDP協議相關知識

什么是UDP

UDP(User Datagram Protocol),是無連接的、不可靠的傳輸層協議。

UDP的頭

源port(16位),目標port(16位),總長度(16位),校驗和(16位)

UDP可以發送多長的報文

根據MTU的大小來判斷。
MTU是數據鏈路層數據的最大長度,超出MTU大小的數據會被分片。
比如以太網的MTU大小是1500,IP層的頭大小是20字節,UDP頭8字節,那UDP的數據長度應該是:
1500 -20 -8 = 1472 字節以下。
windows中可以用ping 命令測試mtu,可以通過-l 指定發送的數據包大小,例如 ping -l 1500 IP地址,
如果提示需要拆分,則MTU比這個值小。
ping 命令基于ICMP協議,是網絡層協議。而MTU 實際上就是網絡層包的大小。

TCP 和 UDP 的區別

1.TCP是面向連接的,UDP是無連接的。
TCP需要三次握手建立連接,四次揮手斷開連接。
UDP沒有這個過程。

2.TCP是字節流形式,UDP是數據報的形式。
字節流形式的特點:
TCP的應用層send幾次和recv幾次是沒有關系的。有可能send了一次100字節,recv 10次。
也可能send了10次,結果對端一次recv就全收到了。
這是由于TCP是面向連接的,連接很穩定,TCP可以通過流量控制來控制協議棧中數據具體如何發送。
但是無邊界的字節流傳輸,也就有沾包的問題,就是本來是兩段數據,結果對端是連在一起收到的。
需要考慮沾包的問題

數據報形式的特點:
UDP sendto一次,對端就要recvfrom一次,如果發送的報文過長,超出了接收端緩沖區的大小,超出部分將被放棄。
這是由于UDP是無連接的,所以一次就把整個報文發出去。所以應用層需要控制UDP發送的數據大小

3.UDP可以廣播、組播
TCP是面向連接的,所以只能一對一。
UDP無連接,可以一對一發送,也可以一對多發送,進行廣播和組播。

4.TCP是可靠的,UDP是不可靠的
TCP通過seq num 和ack num保證數據包是有序的、通過重傳機制保證數據包不丟失、通過流量控制擁塞控制確保網絡傳輸,
所以TCP是可靠的,TCP數據報不重復、不丟失、不亂序。
但是UDP本身沒有這些機制,他只是把報文發出去,不保證對端能收到。

5.TCP是全雙工可靠通道,UDP是不可靠通道
TCP是全雙工的通信,即連接的雙方可以同時發送數據。
但是TCP是傳輸層協議,它支持全雙工,其上的應用層未必支持全雙工,例如http 1.0 是半雙工,http 2.0是全雙工
UDP沒有建立穩定的連接,所以我認為他是不是雙工通信。

6.TCP頭和UDP頭的大小不一樣
TCP的頭大小為 20 - 60 字節之間,由于TCP頭中有一個選項字段,他的大小是可變的。
UDP的頭大小為固定的8字節。

7.socket編程流程不同
TCP socket編程,一般 創建socket (SOCK_STREAM)、bind、listen、accept(connect),send / recv, close socket。
UDP socket編程,一般 創建socket (SOCK_DGRAM)、sendto(recvfrom, close socket。//可選bind

UDP的應用層協議

SNMP (port 161、162)
DNS 53 (DNS在域名解析時使用UDP協議,在區域傳送時使用TCP協議)

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

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

相關文章

R語言數據分析(五)

R語言數據分析(五) 文章目錄 R語言數據分析(五)前言一、什么是整潔的數據二、延長數據2.1 列名中的數據值2.2 pivot_longer()的處理原理2.3 列名中包含許多變量的情況2.4 列名同時包含數據和變量 三、擴寬數據3.1 pivot_wider的處…

JavaSec 之 SQL 注入簡單了解

文章目錄 JDBC 注入語句拼接(Statement)修復方案 語句拼接(PrepareStatement)修復方案 預編譯 JdbcTemplate修復方案 MyBatisLike 注入Order By 注入In 注入 寒假學了一個月 pwn,真心感覺這玩意太底層學的我生理不適應了,接下來學一段時間 java 安全緩一…

力扣226 翻轉二叉樹 Java版本

文章目錄 題目描述解題思路代碼 題目描述 給你一棵二叉樹的根節點 root ,翻轉這棵二叉樹,并返回其根節點。 示例 1: 輸入:root [4,2,7,1,3,6,9] 輸出:[4,7,2,9,6,3,1] 示例 2: 輸入:root…

[云原生] 二進制k8s集群(下)部署高可用master節點

在上一篇文章中,就已經完成了二進制k8s集群部署的搭建,但是單機master并不適用于企業的實際運用(因為單機master中,僅僅只有一臺master作為節點服務器的調度指揮,一旦宕機。就意味著整個集群的癱瘓,所以成熟…

代理技術引領出海征程

在數字娛樂的繁榮時代,游戲開發者和發行商們意識到,要在全球市場立足,必須邁向國際化的出海之路。然而,這一旅程面臨著跨越網絡壁壘、適應多元文化和提升全球連接性的巨大挑戰。本文將深入探討代理技術在游戲行業出海過程中的創新…

這才開工沒幾天收到Offer了,簡歷改的好,找工作沒煩惱。

喜報喜報 這才開工沒幾天,就收到了喜報! 就像上面截圖中所說的一樣:簡歷改了真的有用。 我也和大家分享一下優化簡歷的技巧,希望對大家有幫助,把握住金三銀四的機會,都能順利上岸,升職加薪&am…

Leetcode日記 2583. 二叉樹中的第 K 大層和

Leetcode日記 2583. 二叉樹中的第 K 大層和 題目:解題思路:代碼實現制作不易,感謝三連,謝謝啦 題目: 給你一棵二叉樹的根節點 root 和一個正整數 k 。 樹中的 層和 是指 同一層 上節點值的總和。 返回樹中第 k 大的層和…

Vue2 基礎面試題

v-show 和 v-if 區別 v-show 通過 CSS display 控制顯示和隱藏v-if 通過判斷組件真實渲染和銷毀,而不是顯示和隱藏頻繁切換顯示狀態用 v-show,否則用 v-if v-if 當 v-if 與 v-for 一起使用時,v-for 具有比 v-if 更高的優先級,意…

PolarDN MISC做題筆記

cat flag 使用01打開flag.png,發現圖片尾部有padding的數據。D0 CF 11 E0 A1 B1 1A E1為office2007以前版本的文件頭。將其另存為flag.doc,打開發現提示需要密碼。(可以注意到:D0CF11E0非常類似DOCFILE) 使用john的office2john.py 提取hash …

【操作系統】處理機調度算法

實驗3 處理機管理 一、實驗目的 在多道程序或多任務系統中,系統中同時處于就緒態的進程有若干個,即能運行的進程數遠遠大于處理機個數。為了使系統中的各個進程能有條不紊的運行,必須按照某種調度策略,選擇一個進程占用處理機。…

使用puppeteer完成監聽瀏覽器下載文件并保存到自己本地或服務器上完成上傳功能

需求場景 獲取網站點擊的下載pdf,并把pdf重命名再上傳到COS云上面 技術使用 “puppeteer”: “^19.7.2”, “egg”: “^3.15.0”, // 服務期用egg搭的 文件服務使用COS騰訊云 核心思路 獲取瀏覽器下載事件,并把文件保存到本地 const session awai…

Unity3D 框架如何搭建基于純Lua的U框架與開發模式詳解

前言 Unity3D 是一款非常流行的游戲開發引擎,它支持C#、JavaScript和Boo等多種腳本語言。而Lua語言作為一種輕量級的腳本語言,也在游戲開發中得到了廣泛應用。本文將介紹如何在Unity3D框架中搭建基于純Lua的U框架,并詳細講解其開發模式。 對…

MYSQL--存儲過程操作

一:概念: 存儲過程實際上對標了JAVA當中的方法,兩者是相似的,同時需要注意的一點是,MYSQL僅僅在5.0版本之后才出現這種存儲操作的過程; 優點: 1.存儲過程能夠讓運行的速度變得更加迅速&#xff…

SpringBoot指定外部環境配置

nohup java -Xms256m -Xmx512m -Dfile.encodingUTF-8 -jar /usr/local/xxxx.jar --spring.profiles.activeprod > system.log 2>&1 & --spring.profiles.activeprod修改的是多環境配置中內部application.properties里的spring.profiles.active值 -Dspring.config…

ubuntu 查詢流量使用

在Ubuntu系統中,可以使用nethogs命令來查看每個進程的網絡流量使用情況。這個工具可以顯示每個進程的實時網絡流量,從而可以找出使用流量最多的應用。 首先,你需要安裝nethogs。在終端中輸入以下命令: sudo apt install nethogs…

消息隊列MQ 保證消息不丟失(消息可靠性)

文章目錄 概述RabbitMQ 怎么避免消息丟失(可靠傳輸)RocketMQ 怎么確保消息不丟失Kafka 怎么保證消息不丟失activeMQ 怎么避免消息丟失MQ 宕機了消息是否會丟失線上服務宕機時,如何保證數據100%不丟失嗎?消息隊列消息持久化 概述 …

思偉老友記 | 攜手并進17年 中泰公司的穩步發展和企業傳承

17年攜手并進 合作共贏 2023年是中泰(福建)混凝土發展有限公司攜手思偉軟件的第17年。在這關鍵的17年間,我們共同經歷了一個行業的興盛發展,也相互見證了彼此的榮耀成長。中泰從泉州惠安洛陽江邊一個簡單的攪拌站,到如…

h-table(表格列表組件的全封裝)

文章目錄 概要h-table的封裝過程查詢組件封裝 h-highForm結果頁右側工具欄封裝RightToolbar結果頁列表組件h-table結果頁vue頁面使用js文件有需要的請私信博主,還請麻煩給個關注,博主不定期更新組件封裝,或許能夠有所幫助!&#x…

如何做代幣分析:以 SOL 幣為例

作者:lesleyfootprint.network 編譯:cicifootprint.network 數據源:Solana Token Dashboard (僅包括以太坊數據) 在加密貨幣和數字資產領域,代幣分析起著至關重要的作用。代幣分析指的是深入研究與代幣…

springmvc基于springboot 的音樂播放系統 _7sdu8

這就意味著音樂播放系統的設計可以比其他系統更為出色的能力,可以更高效的完成最新的ymj排行榜、ymj音樂資訊等功能。 此系統設計主要采用的是JAVA語言來進行開發,JSP技術、采用SSM框架技術,框架分為三層,分別是控制層Controller&…