99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

傳輸層的主要功能是什么

科技綠洲 ? 來源:Linux開發(fā)架構(gòu)之路 ? 作者:Linux開發(fā)架構(gòu)之路 ? 2023-11-11 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、傳輸層的主要功能是什么?

分割并重新組裝上層提供的數(shù)據(jù)流,為數(shù)據(jù)流提供端到端的傳輸服務(wù)。

二、傳輸層如何區(qū)分不同應(yīng)用程序的數(shù)據(jù)流?

因?yàn)?,對?yīng)傳輸層而言,它只需要知道目標(biāo)主機(jī)上的哪個(gè)服務(wù)程序來響應(yīng)這個(gè)程序,而不需要知道這個(gè)服務(wù)程序是干什么的。因此,我們只需要能夠抽象的表示出來這些應(yīng)用程序和服務(wù)程序即可。我們使用端口號來抽象標(biāo)識(shí)每個(gè)網(wǎng)絡(luò)程序。

圖片

因此:在同一IP地址(同一個(gè)目標(biāo)主機(jī))上不同的端口號是兩個(gè)不同的鏈接。IP地址和端口號用來唯一的確定網(wǎng)絡(luò)上數(shù)據(jù)的目的地。

三、傳輸層有哪些協(xié)議?

傳輸層的兩大協(xié)議:TCP(傳輸控制協(xié)議)UDP(用戶數(shù)據(jù)包協(xié)議)

TCP是一個(gè)可靠的面向鏈接的協(xié)議,UDP是不可靠的或者說無連接的協(xié)議。

可以用打電話和發(fā)短信來說明這種關(guān)系:

UDP就好似發(fā)短信,只管發(fā)出去,至于對方是不是空號(網(wǎng)絡(luò)不可到達(dá))能不能收到(丟包)等并不關(guān)心。

TCP好像打電話,雙方要通話,首先,要確定對方不是開機(jī)(網(wǎng)絡(luò)可以到達(dá)),然后要確定是不是沒有信號(),然后還需要對方接聽(通信鏈接)。

四、什么是UDP協(xié)議?

UDP數(shù)據(jù)包結(jié)構(gòu)如下圖所示

源端口(16)目標(biāo)端口(16)
報(bào)文長度(16)校驗(yàn)和(16)
數(shù)據(jù)(可變)

UDP為應(yīng)用程序提供的是一種不可靠的、無連接的分組交付,因此,UDP報(bào)文可能會(huì)出現(xiàn)丟失、亂序、重復(fù)、延時(shí)等問題。因?yàn)樗惶峁┛煽啃裕拈_銷很小。(開銷很小具體指什么?下文揭秘)

五、為什么有了UDP,還需要TCP?

問題4中已經(jīng)說到,UDP為應(yīng)用程序提供的是一種無連接、不可靠的分組交付。當(dāng)網(wǎng)絡(luò)硬件失效或者負(fù)擔(dān)太重時(shí),數(shù)據(jù)包可能就會(huì)產(chǎn)生丟失、重復(fù)、延時(shí)、亂序的現(xiàn)象。這些都會(huì)導(dǎo)致我們的通信不正常。如果讓應(yīng)用程序來擔(dān)負(fù)差錯(cuò)控制的工作,無疑將給程序員帶來許多復(fù)雜的工作,于是,我們使用獨(dú)立的通信協(xié)議來保證通信的可靠性是非常必要的。

六、什么是TCP協(xié)議?

傳輸控制協(xié)議TCP是一個(gè)面向鏈接的、可靠的通信協(xié)議。1. 在開始傳輸前,需要進(jìn)行三次握手建立鏈接 2. 可靠性:在傳輸過程中,通信雙方的協(xié)議模塊繼續(xù)進(jìn)行通信 3. 通信結(jié)束后,通信雙方都會(huì)使用改進(jìn)的三次握手來關(guān)閉鏈接

TCP數(shù)據(jù)包結(jié)構(gòu)如下圖

源端口(16)目標(biāo)端口(16)
序號(32)
應(yīng)答號(32)
頭長度(4)保留(6)編碼位(6)窗口(16)
校驗(yàn)和(16)緊急(16)
可選項(xiàng)(如果有,0或32)
數(shù)據(jù)(可變)

七、怎么理解協(xié)議和程序?

如同我們自定義的應(yīng)用層協(xié)議一樣:協(xié)議只是給出了一組規(guī)范,規(guī)定我們應(yīng)該怎么樣(按什么規(guī)則)保存數(shù)據(jù)。

在計(jì)算機(jī)間傳輸?shù)挠肋h(yuǎn)都是二進(jìn)制字節(jié)碼(對于傳輸層,可以理解為傳輸?shù)氖冀K是下層的IP數(shù)據(jù)包),是計(jì)算機(jī)中的程序通過對這些字節(jié)碼進(jìn)行邏輯分析、判斷,來控制程序完成差錯(cuò)控制等功能。 至于解析這些字節(jié)碼的程序,則可以有不同的實(shí)現(xiàn),只要我們按照規(guī)則來解析,并作出相應(yīng)的控制,我們大可以自己寫個(gè)程序是實(shí)現(xiàn)相應(yīng)功能。

八、TCP是否真的有鏈接?

我們都知道,TCP通過完成三次握手來建立鏈接的,但是這種連接是面向虛電路的,是物理上不存在的,只是雙方的TCP程序,邏輯上的認(rèn)為建立了這樣的鏈接。

九、鏈接是如何建立的(邏輯上)?

假設(shè):當(dāng)我們在主機(jī)A上啟動(dòng)一個(gè)程序,通過TCP去鏈接主機(jī)B上的9091端口。

圖片

整個(gè)過程是怎么樣的呢?邏輯上我們可以這么理解建立鏈接的過程:

1.SYN:seq=X;

1.1 A的TCP程序,為這個(gè)鏈接分配一個(gè)端口(設(shè)為9090)。

1.2 同時(shí)邏輯上的將TCP連接的狀態(tài)設(shè)置為:正在連接。(通過在鏈接狀態(tài)表中添加一條記錄,記錄中狀態(tài)為:正在連接)

1.3 同時(shí),隨機(jī)生成一個(gè)初始序列號X,生成一個(gè)TCP包,將初始化序列號X設(shè)置為TCP中的序列號,發(fā)送給主機(jī)B。

2.SYN:seq=Y ACK:ack=X+1;

2.1 B上TCP程序收到該數(shù)據(jù)包,查詢9091端口狀態(tài),如果可以鏈接。

2.2 同樣的,在邏輯上的將TCP連接的狀態(tài)設(shè)置為:正在連接

2.3 同時(shí),隨機(jī)生成一個(gè)初始化序列號Y,根據(jù)接收的序列號X,生成應(yīng)答號X+1,生成一個(gè)TCP包,將序列號和應(yīng)答號分別設(shè)置到TCP包頭中,將TCP數(shù)據(jù)包發(fā)給主機(jī)A。

3.SYN:seq=X+1 ACK:ack=Y+1.

3.1 A上的TCP程序接收到數(shù)據(jù)包,查詢9090端口狀態(tài)。

3.2 根據(jù)收到的SYN:seq=Y;ACK:ack=X+1; 封裝一個(gè)TCP包 SYN:seq=x+1;ACK:ack=Y+1;發(fā)送給主機(jī)B。同時(shí),TCP程序?qū)㈡溄訝顟B(tài)表中該條記錄狀態(tài)設(shè)置為已連接。

3.3 主機(jī)B收到數(shù)據(jù)包,TCP程序?qū)㈡溄訝顟B(tài)表中該條記錄狀態(tài)設(shè)置為已連接。

至此,一個(gè)TCP鏈接建立(三次握手)完成。

我們可以看到:

第一:傳送的都是IP數(shù)據(jù)包,其實(shí)只是將收到的數(shù)據(jù)包交給TCP程序處理。

第二:鏈接狀態(tài),只是TCP程序中的一個(gè)邏輯狀態(tài)。

十、所謂的建立TCP鏈接開銷很大,具體是指什么?

從九中,很容易看出。要簡歷TCP鏈接,必須進(jìn)行三次IP數(shù)據(jù)包的成功傳輸。

十一、三次握手的目的是什么?

TCP是面向鏈接的,在面向鏈接的環(huán)境中,開始傳輸數(shù)據(jù)之前,在兩個(gè)中端之間必須先建立一個(gè)鏈接。建立鏈接的過程可以確保通信雙方在發(fā)送應(yīng)用程序數(shù)據(jù)包之前,都已經(jīng)準(zhǔn)備好了傳送和接收數(shù)據(jù)。并且使通信雙方統(tǒng)一了初始化序列號。

十二、TCP如何提供可靠性?

在傳輸過程中,通信雙方的協(xié)議模塊繼續(xù)進(jìn)行通信,從而確保了傳輸?shù)目煽啃浴?針對亂序:在通過三次握手進(jìn)行鏈接時(shí),序列號被初始化。在傳輸過程中,TCP繼續(xù)使用這個(gè)序列號來標(biāo)記發(fā)送的每一個(gè)數(shù)據(jù)段,沒傳送一個(gè)數(shù)據(jù)段,序列號加一。接收方依據(jù)序列號重裝收到的數(shù)據(jù)段。 針對丟包:在傳輸過程中,接收方收到一個(gè)數(shù)據(jù)段后,會(huì)用ACK應(yīng)答碼向發(fā)送端回復(fù)一個(gè)IP包進(jìn)行應(yīng)答,確認(rèn)號ACK用來告訴發(fā)送端哪些數(shù)據(jù)包已經(jīng)成功接收,發(fā)送方對未被應(yīng)答的報(bào)文段提供重傳。 針對重復(fù):接收端收到數(shù)據(jù)段后,查看序列號,如果已經(jīng)成功接收改數(shù)據(jù)包,則丟棄后面這個(gè)數(shù)據(jù)段。 針對延時(shí):延時(shí)造成的第一個(gè)問題,就是數(shù)據(jù)包達(dá)到接收端時(shí)亂序。當(dāng)延時(shí)嚴(yán)重時(shí),接收端一直未收到數(shù)據(jù)段,則不會(huì)回復(fù)ACK,發(fā)送端認(rèn)為丟包,重發(fā)。

十三、什么是預(yù)期確認(rèn)?什么是肯定確認(rèn)與重新傳輸?哪些情況會(huì)重傳?

1.確認(rèn)號ACK會(huì)告訴發(fā)送端哪些數(shù)據(jù)段已經(jīng)成功接收,并且確認(rèn)號會(huì)向發(fā)送端指出接收端希望收到的下一個(gè)序列號。即,確實(shí)號ACK為上個(gè)數(shù)據(jù)序列號+1,這種機(jī)制稱為預(yù)期確認(rèn)。

2.為了提高效率,我們在發(fā)送端,將數(shù)據(jù)段保存在緩沖區(qū)中,直道發(fā)送端收到來自接收端的確認(rèn)號。這種機(jī)制被稱為“肯定確認(rèn)與重新傳輸”。

3.當(dāng)發(fā)送端在給定時(shí)間間隔內(nèi)收不到那個(gè)數(shù)據(jù)段的應(yīng)答時(shí),發(fā)送端就會(huì)重傳那個(gè)數(shù)據(jù)段。 情況1:網(wǎng)絡(luò)延時(shí)/環(huán)路,數(shù)據(jù)段丟失 情況2:網(wǎng)絡(luò)延時(shí),數(shù)據(jù)段推遲到達(dá) 情況3:數(shù)據(jù)段成功到達(dá),應(yīng)答因?yàn)?.2不能達(dá)到。

十四、TCP中,序列號和應(yīng)答號有哪些作用?

從以上10,11,12中,很明顯的可以看到

1、依靠序列號重組數(shù)據(jù)段

2、依靠數(shù)據(jù)包消除網(wǎng)絡(luò)中的重復(fù)包

3、依靠序列號和應(yīng)答號進(jìn)行差錯(cuò)重傳,提高了TCP的可靠性

十六、為什么需要窗口技術(shù)?

前面我們已經(jīng)說了,TCP的可靠性,是通過預(yù)期確認(rèn)來實(shí)現(xiàn)的。即發(fā)送方發(fā)送一個(gè)數(shù)據(jù)段后,需要得到對方的確認(rèn)后,才會(huì)發(fā)送下一個(gè)數(shù)據(jù)段。因此,假設(shè)一個(gè)數(shù)據(jù)段大小為64KB(IP包最大值),一次發(fā)送和確認(rèn)需要的時(shí)間為500MS,則,1S內(nèi),只能傳送128KB的數(shù)據(jù),如果帶寬為1M,顯然很浪費(fèi)帶寬。為了充分利用帶寬,我們使用窗口技術(shù)?;瑒?dòng)窗口允許發(fā)送方在收到接收方的確認(rèn)之前發(fā)送多個(gè)數(shù)據(jù)段。(窗口大小決定了在收到確認(rèn)前可以發(fā)送的數(shù)據(jù)段數(shù)量)

十七:如何實(shí)現(xiàn)流量控制?

窗口數(shù)決定了當(dāng)前傳輸?shù)淖畲罅髁?。?dāng)我們在傳輸過程中,通信雙方可以根據(jù)網(wǎng)絡(luò)條件動(dòng)態(tài)協(xié)商窗口大小,調(diào)整窗口大小時(shí),即可實(shí)現(xiàn)流量控制。(在TCP的每個(gè)確認(rèn)中,除了ACK外,還包括一個(gè)窗口通知)

十八、UDP的開銷很小,具體是指什么?

1.因?yàn)閁DP是無連接的。在傳輸數(shù)據(jù)之前,不需要進(jìn)行復(fù)雜的三次握手來建立連接。2.在傳輸數(shù)據(jù)時(shí),沒有協(xié)議間通信流量(確認(rèn)信號),也不需要浪費(fèi)不必要的處理時(shí)間(接收確認(rèn)信號再發(fā)一下)。3;傳輸結(jié)束后,也不用再用改進(jìn)的三次握手來端口連接。

十九、UDP數(shù)據(jù)包、TCP數(shù)據(jù)包大小如何確認(rèn)?

1、無論TCP還是UDP數(shù)據(jù)包,都需要交給Internet層封裝為IP包,而一個(gè)IP包,包頭中的長度位為16位,所以IP包最大為2的16方,即65535(64KB還需要減去各種包頭長度)。

2、TCP因?yàn)槊嫦蛄?,且可以憑借序列號對大文件進(jìn)行分段和重組,因此,TCP可以用來傳輸較大的文件。而UDP,如果要傳輸大于64KB的數(shù)據(jù),則需要自己在應(yīng)用層進(jìn)行差錯(cuò)控制。

3、為了提高傳輸效率和減少網(wǎng)絡(luò)通信量(協(xié)議間的通信),TCP也會(huì)一次傳輸足夠多的數(shù)據(jù)。

4、因?yàn)镸TU的存在,TCP包和UDP包不是越大越好。(在路由中分包,在接收端重組,加大路由與接收端負(fù)擔(dān),增大丟包概率。分組丟失,整個(gè)數(shù)據(jù)包重傳。)

二十:UDP適用哪些環(huán)境?TCP適用哪些環(huán)境?

適合UDP的環(huán)境:

1、在高效可靠的網(wǎng)絡(luò)環(huán)境中(不需要考慮網(wǎng)絡(luò)不好導(dǎo)致的丟包、亂序、延時(shí)、重復(fù)等問題),因?yàn)閁DP是無連接的服務(wù),不用消耗不必要的網(wǎng)絡(luò)資源(TCP中的協(xié)議間通信)和處理時(shí)間(預(yù)期確認(rèn)需要的時(shí)間),從而效率要高的多。2、在輕權(quán)通信中,當(dāng)需要傳輸?shù)臄?shù)據(jù)量很?。梢匝b在一個(gè)IP數(shù)據(jù)包內(nèi))時(shí)。如果我們使用TCP協(xié)議,那么,先建立連接,一共需要發(fā)送3個(gè)IP數(shù)據(jù)包,然后數(shù)據(jù)傳輸,1個(gè)IP數(shù)據(jù)包,產(chǎn)生一個(gè)確認(rèn)信號的IP包,然后關(guān)閉連接,需要傳輸5個(gè)IP數(shù)據(jù)包。使用TCP協(xié)議IP包的利用率為1/10。而使用UDP,只需要發(fā)送一個(gè)IP數(shù)據(jù)包。哪怕丟包(服務(wù)不成功),也可重新申請服務(wù)(重傳)。

UDP很適合這種客戶機(jī)向服務(wù)器傳送簡單服務(wù)請求的環(huán)境。此類應(yīng)用層協(xié)議包括TFTP , SNMP , DNS ,DHCP等。

3、在對實(shí)時(shí)性要求很強(qiáng)的通信中:在諸如實(shí)時(shí)視頻直播等對實(shí)時(shí)性要求很高的環(huán)境中,從而允許一定量的丟包的情況下(直播比賽,前面丟失的包,重傳出來已經(jīng)意義不大了),UDP更適合。(可以根據(jù)具體需要通過應(yīng)用層協(xié)議提供可靠性,不用像TCP那么嚴(yán)格。)

適合TCP協(xié)議的環(huán)境:

當(dāng)網(wǎng)絡(luò)硬件失效或者負(fù)擔(dān)太重時(shí),數(shù)據(jù)包可能就會(huì)產(chǎn)生丟失、重復(fù)、延時(shí)、亂序的現(xiàn)象。這些都會(huì)導(dǎo)致我們的通信不正常的時(shí)候。如果讓應(yīng)用程序來擔(dān)負(fù)差錯(cuò)控制的工作,無疑將給程序員帶來許多復(fù)雜的工作,于是,我們使用獨(dú)立的通信協(xié)議來保證通信的可靠性是非常必要的。

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

    關(guān)注

    4

    文章

    1046

    瀏覽量

    32963
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3826

    瀏覽量

    83020
  • 數(shù)據(jù)流
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    14904
  • 傳輸層
    +關(guān)注

    關(guān)注

    0

    文章

    31

    瀏覽量

    11086
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    JESD204B是什么?JESD204B種類

    數(shù)據(jù)傳輸主要功能將AD轉(zhuǎn)換器采樣的數(shù)據(jù)映射成8bit位寬的字節(jié)數(shù)據(jù)。先將所有的采樣數(shù)據(jù)線性的排開,然后添加控制字和控制位得到words,也可以選擇不加控制字和控制位,則words和之前排列的采樣數(shù)據(jù)相同,添加控制字和控制
    的頭像 發(fā)表于 06-29 08:57 ?2.4w次閱讀
    JESD204B是什么?JESD204B種類

    請問TIMx有哪些主要功能?

    TIMx簡介TIMx主要功能
    發(fā)表于 11-09 08:56

    MusrLicManage的主要功能

    MusrLicManage簡介MusrLicManage主要功能
    發(fā)表于 12-16 07:22

    ECC是什么?有什么主要功能?

    ECC是什么?有什么主要功能?
    發(fā)表于 06-21 07:00

    STM32 - DMA的定義及主要功能

    1. 簡介DMA(Direct Memory Access)—直接存儲(chǔ)器存取,是單片機(jī)的一個(gè)外設(shè),它的主要功能 是用來搬數(shù)據(jù),但是不需要占用 CPU,即在傳輸數(shù)據(jù)的時(shí)候,CPU 可以干其他的事情,好
    發(fā)表于 08-24 07:06

    網(wǎng)卡實(shí)現(xiàn)的主要功能是什么

    從介質(zhì)訪問控制方法的角度局域網(wǎng)可分為哪幾類?以太網(wǎng)交換機(jī)是根據(jù)什么去轉(zhuǎn)發(fā)數(shù)據(jù)幀的?網(wǎng)卡實(shí)現(xiàn)的主要功能是什么?
    發(fā)表于 10-20 06:24

    DC的主要功能或者主要作用是什么

    什么是DC?DC能接受多少種輸入格式?DC的主要功能或者主要作用是什么?如何配置DC?
    發(fā)表于 10-20 07:02

    電話伴侶的主要功能

    電話伴侶的主要功能          &n
    發(fā)表于 12-31 13:46 ?1106次閱讀

    電話機(jī)的主要功能

    電話機(jī)的主要功能         
    發(fā)表于 12-31 14:37 ?1207次閱讀

    網(wǎng)絡(luò)電話的主要功能

     網(wǎng)絡(luò)電話的主要功能         
    發(fā)表于 12-31 14:53 ?775次閱讀

    系統(tǒng)數(shù)據(jù)傳輸的拓?fù)浣Y(jié)構(gòu)下的幾種數(shù)據(jù)映射形式

    1數(shù)據(jù)傳輸 數(shù)據(jù)傳輸主要功能將AD轉(zhuǎn)換器采樣的數(shù)據(jù)映射成8bit位寬的字節(jié)數(shù)據(jù),并且根據(jù)應(yīng)用的情況不同,分為4中情況: 一個(gè)AD轉(zhuǎn)換器
    發(fā)表于 11-17 09:45 ?5298次閱讀
    系統(tǒng)數(shù)據(jù)<b class='flag-5'>傳輸</b>的拓?fù)浣Y(jié)構(gòu)下的幾種數(shù)據(jù)映射形式

    mac主要功能介紹

    本文開始介紹了MAC的概念和MAC協(xié)議的種類,其次詳細(xì)的介紹了MAC幀格式及修改地址,最后闡述了MAC子主要功能。
    發(fā)表于 03-15 09:04 ?8.7w次閱讀
    mac<b class='flag-5'>層</b>的<b class='flag-5'>主要功能</b>介紹

    直線導(dǎo)軌的主要功能

    直線導(dǎo)軌的主要功能
    的頭像 發(fā)表于 07-26 17:42 ?1506次閱讀
    直線導(dǎo)軌的<b class='flag-5'>主要功能</b>

    AMI網(wǎng)絡(luò)的主要功能

    電子發(fā)燒友網(wǎng)站提供《AMI網(wǎng)絡(luò)的主要功能.pdf》資料免費(fèi)下載
    發(fā)表于 11-27 11:56 ?0次下載
    AMI網(wǎng)絡(luò)的<b class='flag-5'>主要功能</b>

    連接器的主要功能是什么

    連接器的主要功能是實(shí)現(xiàn)電子設(shè)備之間的電氣連接和信號傳輸。連接器的種類繁多,應(yīng)用領(lǐng)域廣泛,其主要功能可以歸納為以下幾點(diǎn): 電氣連接:連接器的主要功能是實(shí)現(xiàn)電子設(shè)備之間的電氣連接。連接器通
    的頭像 發(fā)表于 06-20 09:22 ?1902次閱讀