0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

淺析C++基礎(chǔ)語法之計(jì)算機(jī)網(wǎng)絡(luò)中傳輸層(TCP&UDP)

C語言編程學(xué)習(xí)基地 ? 來源:C語言編程學(xué)習(xí)基地 ? 作者: C語言編程 ? 2021-10-26 10:07 ? 次閱讀

運(yùn)輸層

協(xié)議:

TCP(Transmission Control Protocol,傳輸控制協(xié)議)

UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)

端口

5775e780-357f-11ec-82a8-dac502259ad0.png

TCP

TCP(Transmission Control Protocol,傳輸控制協(xié)議)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,其傳輸?shù)膯挝皇菆?bào)文段。

特征:

①面向連接

②只能點(diǎn)對點(diǎn)(一對一)通信

③可靠交互

④全雙工通信

⑤面向字節(jié)流

TCP 如何保證可靠傳輸:

①確認(rèn)和超時重傳

②數(shù)據(jù)合理分片和排序

③流量控制

④擁塞控制

⑤數(shù)據(jù)校驗(yàn)

TCP 報(bào)文結(jié)構(gòu)

57e02d16-357f-11ec-82a8-dac502259ad0.png

TCP 首部

5843bbec-357f-11ec-82a8-dac502259ad0.png

TCP:狀態(tài)控制碼(Code,Control Flag),占 6 比特,含義如下:

URG:緊急比特(urgent),當(dāng) URG=1 時,表明緊急指針字段有效,代表該封包為緊急封包。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級的數(shù)據(jù)), 且上圖中的 Urgent Pointer 字段也會被啟用。

ACK:確認(rèn)比特(Acknowledge)。只有當(dāng) ACK=1 時確認(rèn)號字段才有效,代表這個封包為確認(rèn)封包。當(dāng) ACK=0 時,確認(rèn)號無效。

PSH:(Push function)若為 1 時,代表要求對方立即傳送緩沖區(qū)內(nèi)的其他對應(yīng)封包,而無需等緩沖滿了才送。

RST:復(fù)位比特(Reset),當(dāng) RST=1 時,表明 TCP 連接中出現(xiàn)嚴(yán)重差錯(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立運(yùn)輸連接。

SYN:同步比特(Synchronous),SYN 置為 1,就表示這是一個連接請求或連接接受報(bào)文,通常帶有 SYN 標(biāo)志的封包表示『主動』要連接到對方的意思。

FIN:終止比特(Final),用來釋放一個連接。當(dāng) FIN=1 時,表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。

UDP

UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是 OSI(Open System Interconnection 開放式系統(tǒng)互聯(lián)) 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù),其傳輸?shù)膯挝皇怯脩魯?shù)據(jù)報(bào)。

特征:

①無連接

②盡最大努力交付

③面向報(bào)文

④沒有擁塞控制

⑤支持一對一、一對多、多對一、多對多的交互通信

⑥首部開銷小

UDP 報(bào)文結(jié)構(gòu)

UDP 首部

TCP 與 UDP 的區(qū)別

TCP 面向連接,UDP 是無連接的;

TCP 提供可靠的服務(wù),也就是說,通過 TCP 連接傳送的數(shù)據(jù),無差錯,不丟失,不重復(fù),且按序到達(dá);UDP 盡最大努力交付,即不保證可靠交付

TCP 的邏輯通信信道是全雙工的可靠信道;UDP 則是不可靠信道

每一條 TCP 連接只能是點(diǎn)到點(diǎn)的;UDP 支持一對一,一對多,多對一和多對多的交互通信

TCP 面向字節(jié)流(可能出現(xiàn)黏包問題),實(shí)際上是 TCP 把數(shù)據(jù)看成一連串無結(jié)構(gòu)的字節(jié)流;UDP 是面向報(bào)文的(不會出現(xiàn)黏包問題)

UDP 沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會使源主機(jī)的發(fā)送速率降低(對實(shí)時應(yīng)用很有用,如 IP 電話,實(shí)時視頻會議等)

TCP 首部開銷20字節(jié);UDP 的首部開銷小,只有 8 個字節(jié)

TCP 黏包問題

原因

TCP 是一個基于字節(jié)流的傳輸服務(wù)(UDP 基于報(bào)文的),“流” 意味著 TCP 所傳輸?shù)臄?shù)據(jù)是沒有邊界的。所以可能會出現(xiàn)兩個數(shù)據(jù)包黏在一起的情況。

解決

發(fā)送定長包。如果每個消息的大小都是一樣的,那么在接收對等方只要累計(jì)接收數(shù)據(jù),直到數(shù)據(jù)等于一個定長的數(shù)值就將它作為一個消息。

包頭加上包體長度。包頭是定長的 4 個字節(jié),說明了包體的長度。接收對等方先接收包頭長度,依據(jù)包頭長度來接收包體。

在數(shù)據(jù)包之間設(shè)置邊界,如添加特殊符號 標(biāo)記。FTP 協(xié)議正是這么做的。但問題在于如果數(shù)據(jù)正文中也含有 ,則會誤判為消息的邊界。

使用更加復(fù)雜的應(yīng)用層協(xié)議。

TCP 流量控制

概念

流量控制(flow control)就是讓發(fā)送方的發(fā)送速率不要太快,要讓接收方來得及接收。

方法

利用可變窗口進(jìn)行流量控制

TCP 擁塞控制

概念

擁塞控制就是防止過多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不致過載。

方法

慢開始( slow-start )

擁塞避免( congestion avoidance )

快重傳( fast retransmit )

快恢復(fù)( fast recovery )

TCP的擁塞控制圖

今天的分享就到這里了,下期為大家分享TCP連接管理,大家要好好學(xué)C++喲~

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7048

    瀏覽量

    89076
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1356

    瀏覽量

    79098
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    325

    瀏覽量

    33957

原文標(biāo)題:C++基礎(chǔ)語法梳理:計(jì)算機(jī)網(wǎng)絡(luò)丨傳輸層(TCP&UDP)

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學(xué)習(xí)基地】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    TCP&;UDP調(diào)試工具

    TCP&UDP調(diào)試工具
    發(fā)表于 10-30 10:41 ?1次下載

    應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)器晶振SG3225HBN(X1G005141000500)

    計(jì)算機(jī)網(wǎng)絡(luò)服務(wù)器,穩(wěn)定和高性能的時鐘源對于數(shù)據(jù)處理和網(wǎng)絡(luò)通信的準(zhǔn)確性至關(guān)重要,SG3225HBN晶振(型號X1G005141000500)憑借其高頻率穩(wěn)定性、低相位噪聲、高抗干擾能力以及
    發(fā)表于 09-05 10:05 ?0次下載

    深度解析TCPUDP協(xié)議

    計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備要相互通信,它們必須遵循一種共同的方法或標(biāo)準(zhǔn)。對于不同硬件平臺和操作系統(tǒng)之間的交互而言,這種共同遵循的規(guī)范尤為關(guān)鍵。我們將這一系列指導(dǎo)通信過程的規(guī)則稱為“協(xié)議”。TCPU
    的頭像 發(fā)表于 09-02 14:53 ?413次閱讀
    深度解析<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>協(xié)議

    tcpudp的區(qū)別和聯(lián)系

    揮著重要作用。然而,它們在設(shè)計(jì)、功能和性能方面存在顯著差異。 二、TCPUDP的定義 傳輸控制協(xié)議(TCPTCP是一種面向連接的、可靠
    的頭像 發(fā)表于 08-16 11:06 ?613次閱讀

    計(jì)算機(jī)網(wǎng)絡(luò)中常見的默認(rèn)端口號及其用途

    網(wǎng)絡(luò)工程領(lǐng)域,了解和掌握默認(rèn)端口號是至關(guān)重要的。端口號是計(jì)算機(jī)網(wǎng)絡(luò)中最基本的概念之一,用于標(biāo)識特定的網(wǎng)絡(luò)服務(wù)或應(yīng)用程序。本文將詳細(xì)介紹常見的默認(rèn)端口號及其用途,幫助網(wǎng)絡(luò)工程師更好地理
    的頭像 發(fā)表于 08-13 16:33 ?1439次閱讀

    一文了解TCP/IP協(xié)議

    TCP/IP協(xié)議是現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)通信的基礎(chǔ),是互聯(lián)網(wǎng)及局域網(wǎng)廣泛使用的一套協(xié)議。TCP/IP協(xié)議集包括許多協(xié)議,其中最重要的是傳輸控制協(xié)議(TCP
    的頭像 發(fā)表于 08-07 15:38 ?2007次閱讀
    一文了解<b class='flag-5'>TCP</b>/IP協(xié)議

    計(jì)算機(jī)網(wǎng)絡(luò)的三種通信方式

    計(jì)算機(jī)網(wǎng)絡(luò)的三種通信方式,即單工通信、半雙工通信和全雙工通信,是理解和設(shè)計(jì)高效網(wǎng)絡(luò)架構(gòu)的基礎(chǔ)。每種通信方式都有其獨(dú)特的特性、應(yīng)用場景及優(yōu)缺點(diǎn)。以下是對這三種通信方式的詳細(xì)分析,旨在提供深入的理解。
    的頭像 發(fā)表于 08-07 15:00 ?2772次閱讀

    【RTC程序設(shè)計(jì):實(shí)時音視頻權(quán)威指南】計(jì)算機(jī)知識基礎(chǔ)篇

    數(shù)據(jù)通信的加密,加密方法、算法也有很多種,有對稱加密算法,也有非對稱加密算法。在這些計(jì)算機(jī)網(wǎng)絡(luò)的基本概念,可以從物理到應(yīng)用的特性進(jìn)行了解,重點(diǎn)可以學(xué)習(xí)一下
    發(fā)表于 04-23 09:02

    計(jì)算機(jī)網(wǎng)絡(luò)為什么要分層次

    因?yàn)槿绻麅膳_計(jì)算機(jī)能夠相互通信的話,實(shí)際實(shí)現(xiàn)起來是非常困難操作的。我們分層的目的就是為了將困難的問題簡單化,并且如果我們分層了,我們在使用的時候就可以僅僅關(guān)注我們需要關(guān)注的層次,而不用理會其他
    發(fā)表于 02-03 17:12 ?2326次閱讀
    <b class='flag-5'>計(jì)算機(jī)網(wǎng)絡(luò)</b>為什么要分層次

    udp是什么意思 簡述TCPUDP的區(qū)別和聯(lián)系

    UDP (User Datagram Protocol) 是一種在計(jì)算機(jī)網(wǎng)絡(luò)中使用的傳輸協(xié)議。它與TCP (Transmission Co
    的頭像 發(fā)表于 02-02 16:33 ?1325次閱讀

    什么是計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)?主要的拓?fù)浣Y(jié)構(gòu)有哪些?

    計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)是指計(jì)算機(jī)網(wǎng)絡(luò)各個節(jié)點(diǎn)(包括計(jì)算機(jī)、服務(wù)器、路由器等)之間連接的方式和形式。拓?fù)浣Y(jié)構(gòu)可以影響到網(wǎng)絡(luò)的性能、可靠性和擴(kuò)展
    的頭像 發(fā)表于 01-31 10:40 ?2267次閱讀

    UDPTCP的主要區(qū)別 UDP能否像TCP一樣實(shí)現(xiàn)可靠傳輸?

    UDPTCP的主要區(qū)別 UDP能否像TCP一樣實(shí)現(xiàn)可靠傳輸?TCP如何實(shí)現(xiàn)可靠性
    的頭像 發(fā)表于 01-22 16:10 ?825次閱讀

    計(jì)算機(jī)網(wǎng)絡(luò)路由器和交換機(jī)的區(qū)別

    計(jì)算機(jī)網(wǎng)絡(luò),路由器和交換機(jī)是兩種常用的網(wǎng)絡(luò)設(shè)備,它們在網(wǎng)絡(luò)起著重要的作用。雖然它們的功能有一些重疊,但也存在一些關(guān)鍵的區(qū)別。本文將詳細(xì)介
    的頭像 發(fā)表于 01-14 11:28 ?1093次閱讀

    osi參考模型與TCP/IP參考模型的對應(yīng)關(guān)系

    使不同廠商的網(wǎng)絡(luò)產(chǎn)品能夠互相兼容。而TCP/IP參考模型是一種將計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議分解成四個不同層次的概念模型。這四個層次分別是網(wǎng)絡(luò)接口、互聯(lián)
    的頭像 發(fā)表于 01-11 14:26 ?6146次閱讀

    電話交換機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)交換機(jī)的區(qū)別是什么呢?

    語音信號,實(shí)現(xiàn)電話系統(tǒng)的連接和通信控制。它能夠?qū)㈦娫捫盘枏囊粭l線路傳輸到另一條線路,實(shí)現(xiàn)電話用戶之間的互聯(lián)互通,并提供基本的電話通信功能。 計(jì)算機(jī)網(wǎng)絡(luò)交換機(jī)是一種專門用于局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)的數(shù)據(jù)交換設(shè)備。它通
    的頭像 發(fā)表于 01-09 11:29 ?1470次閱讀