国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(學(xué)習(xí)筆記)如何理解TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議?

這篇具有很好參考價值的文章主要介紹了(學(xué)習(xí)筆記)如何理解TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

如何理解字節(jié)流?

之所以會說TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議,是因為操作系統(tǒng)對TCP和UDP協(xié)議的發(fā)送方的機制不同,也就是問題原因在發(fā)送方

為什么UDP協(xié)議是面向報文的協(xié)議?

?當(dāng)用戶消息通過UDP協(xié)議傳輸時,操作系統(tǒng)不會對消息進行拆分,在組裝好UDP頭部后就交給網(wǎng)絡(luò)層來處理,所以發(fā)出去的UDP報文中的數(shù)據(jù)部分就是完整的用戶消息,也就是每個UDP報文就是一個用戶消息的邊界,這樣接收方在接收到UDP報文后,讀取一個UDP報文就能讀取到完整的用戶消息。

操作系統(tǒng)在接收到UDP報文后,會將其插入到隊列里,隊列里的每一個元素都是一個UDP報文,這樣當(dāng)用戶調(diào)用recvfrom()系統(tǒng)調(diào)用讀數(shù)據(jù)的時候,就會從隊列中取出一個數(shù)據(jù),然后從內(nèi)核里拷貝給用戶緩沖區(qū)。(學(xué)習(xí)筆記)如何理解TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議?,計算機網(wǎng)絡(luò),學(xué)習(xí),筆記,tcp/ip

?為什么說TCP是面向字節(jié)流的協(xié)議?

當(dāng)用戶消息通過TCP協(xié)議傳輸時,消息可能會被操作系統(tǒng)分組成多個的TCP報文,也就是一個完整的用戶消息被拆分成多個TCP報文進行傳輸。

這時,接收方的程序如果不知道發(fā)送方發(fā)送的消息長度,也就是不知道消息的邊界時,是無法讀出一個有效的用戶消息的,因為用戶消息被拆分成多個TCP報文后,并不能像UDP那樣,一個UDP報文就能代表一個完整的用戶消息。

eg:

發(fā)送方準(zhǔn)備發(fā)送[Hi][I am Xiaolin]兩個消息。

在發(fā)送端,當(dāng)我們調(diào)用send函數(shù)完成數(shù)據(jù)“發(fā)送”后,數(shù)據(jù)并沒有真正從網(wǎng)絡(luò)上發(fā)送出去,只是從應(yīng)用程序拷貝到了操作系統(tǒng)的內(nèi)核協(xié)議棧中。

至于什么時候真正被發(fā)送,取決于發(fā)送窗口、擁塞窗口以及當(dāng)前發(fā)送緩沖區(qū)的大小等條件。也就是說,我們不能認為每次send調(diào)用發(fā)送的數(shù)據(jù),都會作為一個完整的消息被發(fā)出。

如果考慮實際網(wǎng)絡(luò)傳輸過程中的各種影響,假設(shè)發(fā)送端陸續(xù)調(diào)用send函數(shù)先后發(fā)送[Hi][I am Xiaolin]報文,那么實際的發(fā)送情況可能是以下幾種:

1. 兩個消息被分到同一個TCP報文

(學(xué)習(xí)筆記)如何理解TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議?,計算機網(wǎng)絡(luò),學(xué)習(xí),筆記,tcp/ip

2.?[I am Xiaolin]報文的部分隨[Hi]在一個TCP報文中發(fā)送出去

(學(xué)習(xí)筆記)如何理解TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議?,計算機網(wǎng)絡(luò),學(xué)習(xí),筆記,tcp/ip

3.?[Hi]的部分隨[I am Xiaolin]報文中發(fā)送出去

(學(xué)習(xí)筆記)如何理解TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議?,計算機網(wǎng)絡(luò),學(xué)習(xí),筆記,tcp/ip

因此,不能認為一個用戶消息對應(yīng)一個TCP報文,正因為這樣,TCP是面向字節(jié)流的協(xié)議。

當(dāng)兩個消息的某個部分內(nèi)容被分到同一個TCP報文時,就是常說的TCP粘包問題,這時,接收方不知道消息的邊界的話,是無法讀出有效消息的。


如何解決粘包

粘包的問題出現(xiàn)是因為不知道一個用戶消息的邊界在哪,如果知道了邊界在哪,接收方就可以通過邊界來劃分出有效的用戶消息。

一般有三種方式:文章來源地址http://www.zghlxwxcb.cn/news/detail-599671.html

  • 固定長度的消息
  • 特殊字符作為邊界
  • 自定義消息結(jié)構(gòu)

到了這里,關(guān)于(學(xué)習(xí)筆記)如何理解TCP是面向字節(jié)流的協(xié)議,UDP是面向報文的協(xié)議?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 計算機網(wǎng)絡(luò)筆記:TCP協(xié)議 和UDP協(xié)議(傳輸層)

    計算機網(wǎng)絡(luò)筆記:TCP協(xié)議 和UDP協(xié)議(傳輸層)

    TCP 和 UDP都是傳輸層協(xié)議,他們都屬于TCP/IP協(xié)議族。 TCP的全稱是 傳輸控制協(xié)議 是一種 面向連接的、可靠的、基于字節(jié)流 的 傳輸層 通信協(xié)議。TCP 是面向連接的、可靠的流協(xié)議(流就是指不間斷的數(shù)據(jù)結(jié)構(gòu)) TCP報文 是TCP層傳輸?shù)臄?shù)據(jù)單元,也稱為 報文段 ,一個TCP報文段由

    2024年02月02日
    瀏覽(25)
  • 如何理解UDP 和 TCP? 區(qū)別? 應(yīng)用場景?

    如何理解UDP 和 TCP? 區(qū)別? 應(yīng)用場景?

    UDP(User Datagram Protocol),用戶數(shù)據(jù)包協(xié)議,是一個簡單的面向數(shù)據(jù)報的通信協(xié)議,即對應(yīng)用層交下來的報文,不合并,不拆分,只是在其上面加上首部后就交給了下面的網(wǎng)絡(luò)層 也就是說無論應(yīng)用層交給 UDP 多長的報文,它統(tǒng)統(tǒng)發(fā)送,一次發(fā)送一個報文 而對接收方,接到后直

    2024年03月20日
    瀏覽(21)
  • 什么是 TCP 和 UDP?Java 中如何實現(xiàn) TCP 和 UDP 協(xié)議

    什么是 TCP 和 UDP?Java 中如何實現(xiàn) TCP 和 UDP 協(xié)議

    在計算機網(wǎng)絡(luò)中,TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)是兩種最常用的傳輸層協(xié)議。它們都用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù),但是它們之間有很多不同之處。本文將介紹TCP和UDP的基本概念,以及在Java中如何實現(xiàn)TCP和UDP協(xié)議。 TCP和UDP都是傳輸層協(xié)議,用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù)。

    2024年02月16日
    瀏覽(22)
  • TCP/UDP協(xié)議重溫三次握手四次揮手 簡單筆記

    TCP/UDP協(xié)議重溫三次握手四次揮手 簡單筆記

    術(shù)語儲備: SYN: 同步位 ;SYN=1,表示進行一個連接請求 ACK: 確認位 ;ACK=1,確認有效 ACK=0,確認無效 ack : 確認號 ;對方發(fā)送序號+1 seq : 序號 ; 標(biāo)識從TCP發(fā)端向TCP收端發(fā)送的數(shù)據(jù)字節(jié)流 FIN :表示 關(guān)閉連接 TCP/UDP協(xié)議都是傳輸層協(xié)議 TCP協(xié)議:(傳輸控制協(xié)議) 連接(三次握

    2024年02月09日
    瀏覽(21)
  • 「網(wǎng)絡(luò)編程」傳輸層協(xié)議_ UDP協(xié)議學(xué)習(xí)_及原理深入理解

    「網(wǎng)絡(luò)編程」傳輸層協(xié)議_ UDP協(xié)議學(xué)習(xí)_及原理深入理解

    「前言」文章內(nèi)容大致是傳輸層協(xié)議,UDP協(xié)議講解。 「歸屬專欄」網(wǎng)絡(luò)編程 「主頁鏈接」個人主頁 「筆者」楓葉先生(fy) HTTP協(xié)議普通用戶認為是將請求和響應(yīng)直接發(fā)送到了網(wǎng)絡(luò)當(dāng)中。但實際應(yīng)用層需要先將數(shù)據(jù)交給傳輸層,由傳輸層對數(shù)據(jù)做進一步處理后再將數(shù)據(jù)繼續(xù)向下

    2024年02月17日
    瀏覽(25)
  • socket概述 python中如何使用TCP/UDP協(xié)議實現(xiàn)通信-教程

    socket概述 python中如何使用TCP/UDP協(xié)議實現(xiàn)通信-教程

    很多編程語言中,都 使用scoket套接字實現(xiàn)網(wǎng)絡(luò)通信。 Socket是對TCP/IP協(xié)議的封裝,Socket本身就是一個調(diào)用接口(API),方便程序員用Socket使用TCP/IP協(xié)議簇,實現(xiàn)網(wǎng)絡(luò)通信。 不同編程語言,shiyongSocket通信的語法有所區(qū)別,但基本原理類型相似。 它的兩種方式,分別是TCP和UDP協(xié)

    2024年02月13日
    瀏覽(48)
  • 如何理解TCP/IP協(xié)議?

    如何理解TCP/IP協(xié)議?

    TCP/IP, 傳輸控制協(xié)議 / 網(wǎng)際協(xié)議 ,是指能夠在多個不同網(wǎng)絡(luò)間實現(xiàn)信息傳輸?shù)膮f(xié)議簇 TCP(傳輸控制協(xié)議) 一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議 IP(網(wǎng)際協(xié)議) 用于封包交換數(shù)據(jù)網(wǎng)絡(luò)的協(xié)議 TCP/IP協(xié)議不僅僅指的是 TCP? 和 IP 兩個協(xié)議,而是指一個由 FTP

    2024年02月08日
    瀏覽(17)
  • SCTP, TCP, UDP, IP, ICMP都在哪一層?(TCP/IP網(wǎng)絡(luò)通信協(xié)議學(xué)習(xí))

    SCTP, TCP, UDP, IP, ICMP都在哪一層?(TCP/IP網(wǎng)絡(luò)通信協(xié)議學(xué)習(xí))

    TCP/IP網(wǎng)絡(luò)通信協(xié)議最早是由 羅伯特·卡恩 (Robert E. Kahn)和 文頓·瑟夫 (Vinton G. Cerf)于1972年提出的,它是一個實際的協(xié)議棧。 OSI七層網(wǎng)絡(luò)通信協(xié)議最早是 由國際標(biāo)準(zhǔn)化組織 (ISO)于1977年提出的,它是一個理論模型。TCP/IP網(wǎng)絡(luò)通信協(xié)議由于其簡單性和實用性,成為 事實上

    2024年01月22日
    瀏覽(172)
  • (學(xué)習(xí)筆記-TCP基礎(chǔ)知識)TCP與UDP區(qū)別

    (學(xué)習(xí)筆記-TCP基礎(chǔ)知識)TCP與UDP區(qū)別

    UDP不提供復(fù)雜的控制機制,利用IP提供面向[無連接]的通信服務(wù)。 UDP協(xié)議非常簡單,頭部只有8個字節(jié)(位),UDP的頭部格式如下: 目標(biāo)和源端口:主要是告訴UDP協(xié)議應(yīng)該把報文發(fā)給哪個進程 包長度:該字段保存了UDP首部的長度跟數(shù)據(jù)的長度之和 校驗和:提供可靠的UDP首部和數(shù)

    2024年02月17日
    瀏覽(59)
  • 【Java學(xué)習(xí)筆記】 68 - 網(wǎng)絡(luò)——TCP編程、UDP編程

    【Java學(xué)習(xí)筆記】 68 - 網(wǎng)絡(luò)——TCP編程、UDP編程

    https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter21/src 目錄 項目代碼 網(wǎng)絡(luò) 一、網(wǎng)絡(luò)相關(guān)概念 1.網(wǎng)絡(luò)通訊 2.網(wǎng)絡(luò) 3.IP地址 4.域名 5.端口號 6.網(wǎng)絡(luò)通訊協(xié)議 TCP協(xié)議:傳輸控制協(xié)議 UDP協(xié)議: 二、InetAddress類 1.相關(guān)方法 三、Socket 1.基本介紹 2.TCP網(wǎng)絡(luò)通信編程 基本介紹 應(yīng)用案例

    2024年02月04日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包