計(jì)算機(jī)網(wǎng)絡(luò)要點(diǎn)(四)

傳輸層

傳輸層為運(yùn)行在不同主機(jī)上的進(jìn)程之間提供給了邏輯通信,而網(wǎng)絡(luò)層提供了主機(jī)之間的邏輯通信。當(dāng)網(wǎng)絡(luò)層協(xié)議不可靠時(shí),傳輸層同樣可以為應(yīng)用程序提供可靠的服務(wù)。
傳輸層向高層用戶屏蔽了底層網(wǎng)絡(luò)核心的細(xì)節(jié),它使應(yīng)用進(jìn)程看見(jiàn)的就好像在兩個(gè)傳輸實(shí)體之間有一條端到端的邏輯通信信道。當(dāng)傳輸層采用面向連接的TCP時(shí),盡管下面的網(wǎng)絡(luò)是不可靠的,但這種邏輯通信信道就相當(dāng)于一條全雙工的可靠信道。

  • 端口號(hào)
    數(shù)據(jù)鏈路層的SAP是MAC地址,網(wǎng)絡(luò)層的SAP是IP地址,傳輸層的SAP是端口。
    端口號(hào)只具有本地意義,即端口號(hào)只是為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各進(jìn)程,在因特網(wǎng)中不同計(jì)算機(jī)的相同端口號(hào)是沒(méi)有聯(lián)系的。端口號(hào)的長(zhǎng)度為16bit,能夠表示65536個(gè)不同的端口。
    端口是傳輸層和應(yīng)用層的服務(wù)接口,傳輸層的復(fù)用和分用功能都是通過(guò)端口實(shí)現(xiàn)。
  • 套接字 =(主機(jī)IP地址,端口號(hào)),它唯一地標(biāo)識(shí)了網(wǎng)絡(luò)中的一個(gè)主機(jī)和其上的一個(gè)應(yīng)用進(jìn)程。
    套接字尋址系使得TCP和UDP能夠執(zhí)行多路復(fù)用和多路分解。多路復(fù)用是指把多個(gè)來(lái)源的數(shù)據(jù)導(dǎo)向一個(gè)輸出,而多路分解是把從一個(gè)來(lái)源接收的數(shù)據(jù)發(fā)送到多個(gè)輸出
  • UDP
    只做了傳輸協(xié)議能夠做的最少工作,在IP數(shù)據(jù)報(bào)服務(wù)上增加了兩個(gè)最基本的服務(wù):復(fù)用和分用以及差錯(cuò)檢測(cè)。
    UDP數(shù)據(jù)報(bào)包含兩個(gè)部分:UDP首部和用戶數(shù)據(jù)。UDP首部有8個(gè)字節(jié),由4個(gè)字段組成(源端口,目的端口,UDP長(zhǎng)度,UDP校驗(yàn)和),每個(gè)字段占兩個(gè)字節(jié)。
  • TCP
    TCP是在不可靠的IP層上實(shí)現(xiàn)的可靠的數(shù)據(jù)傳輸協(xié)議。每一條TCP連接只能是點(diǎn)對(duì)點(diǎn)的,TCP提供全雙工通信,允許通信雙方的應(yīng)用進(jìn)程在任何時(shí)候都能發(fā)送數(shù)據(jù),為此TCP連接的兩端都設(shè)有發(fā)送緩存和接收緩存,用來(lái)臨時(shí)存放雙向通信的數(shù)據(jù)。
    TCP傳送的數(shù)據(jù)單元稱為報(bào)文段,TCP報(bào)文段可以用來(lái)運(yùn)載數(shù)據(jù)、建立連接、釋放連接和應(yīng)答。
    TCP是面向字節(jié)流的(TCP傳送時(shí)按照一個(gè)一個(gè)字節(jié)來(lái)傳送),UDP是面向報(bào)文的。
    TCP連接有兩個(gè)端點(diǎn),這兩個(gè)端點(diǎn)不是主機(jī)、不是應(yīng)用進(jìn)程、也不是傳輸層的協(xié)議端口,而是套接字。
    TCP連接的建立采用客戶/服務(wù)器模式。主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶機(jī),而被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器。
  • 三次握手


    image.png

    序號(hào)字段seq是指本報(bào)文段所發(fā)送數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)
    確認(rèn)號(hào)ack=N,表明到序號(hào)N-1為止的所有數(shù)據(jù)都已正確收到

  • 四次揮手


    image.png
  • TCP可靠傳輸
    可靠傳輸服務(wù)就是要保證接收方進(jìn)程從緩存區(qū)讀出的字節(jié)流與發(fā)送方發(fā)出的字節(jié)流是完全一樣的。
    TCP默認(rèn)采用累計(jì)確認(rèn),即TCP只確認(rèn)數(shù)據(jù)流中至第一個(gè)丟失字節(jié)為止的字節(jié)。
    有兩種事件會(huì)導(dǎo)致TCP對(duì)報(bào)文進(jìn)行重傳:超時(shí)和冗余ACK。
    TCP每發(fā)送一個(gè)報(bào)文段,就對(duì)這個(gè)報(bào)文段設(shè)置一次計(jì)時(shí)器,只要計(jì)時(shí)器設(shè)置的重傳時(shí)間到期但還沒(méi)收到確認(rèn),就要重傳這一報(bào)文段。
    冗余ACK是發(fā)送方再次確認(rèn)某個(gè)報(bào)文段的ACK,而之前已經(jīng)收到過(guò)該報(bào)文段的確認(rèn)。
  • 流量控制
    TCP提供一種基于滑動(dòng)窗口協(xié)議的流量控制機(jī)制,以消除發(fā)送方使接收方緩存區(qū)溢出的可能。接收方根據(jù)自己接收緩存的大小,動(dòng)態(tài)地調(diào)整發(fā)送方窗口的大小,這就是接收窗口rwnd,即調(diào)整TCP報(bào)文段首部中的'窗口'字段值,來(lái)限制發(fā)送方向網(wǎng)絡(luò)注入報(bào)文的速率。同時(shí),發(fā)送方根據(jù)其對(duì)當(dāng)前網(wǎng)絡(luò)擁塞程序的估計(jì)而確定的窗口值,稱為擁塞窗口cwnd。
    發(fā)送窗口=min(rwnd, cwnd);
  • 擁塞控制
    擁塞控制是防止過(guò)多的數(shù)據(jù)注入網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不致過(guò)載
    當(dāng)發(fā)送方檢測(cè)到超時(shí)時(shí)就采用慢開(kāi)始和擁塞避免,當(dāng)發(fā)送方接收到冗余ACK時(shí)就采用快重傳和快恢復(fù)。
    • 慢開(kāi)始
      開(kāi)始發(fā)送TCP報(bào)文時(shí),先令擁塞窗口cwnd=1,即一個(gè)最大報(bào)文段長(zhǎng)度MSS。在每收到一個(gè)新的報(bào)文段的確認(rèn)后,將cwnd加1,這樣每經(jīng)過(guò)一個(gè)傳輸輪次RTT,擁塞窗口cwnd就會(huì)加倍,呈指數(shù)增長(zhǎng),最后達(dá)到閾值,改用擁塞避免算法。
    • 擁塞避免
      發(fā)送端的擁塞窗口cwnd每經(jīng)過(guò)一個(gè)RTT就增加一個(gè)MSS,而不是加倍,使cwnd線性增長(zhǎng)(加法增大);當(dāng)出現(xiàn)一個(gè)超時(shí)時(shí),則令慢開(kāi)始閾值等于當(dāng)前cwnd的一半(乘法減?。?,然后將擁塞窗口cwnd重置為1,執(zhí)行慢開(kāi)始算法。
    • 快重傳
      當(dāng)發(fā)送方連續(xù)收到三個(gè)重復(fù)的ACK報(bào)文時(shí),直接重傳對(duì)方尚未收到的報(bào)文段,而不等待那個(gè)報(bào)文段設(shè)置的重傳計(jì)時(shí)器超時(shí)。
    • 快恢復(fù)
      當(dāng)發(fā)送端收到連續(xù)三個(gè)冗余ACK時(shí),就執(zhí)行“乘法減小”,把慢開(kāi)始閾值設(shè)為出現(xiàn)擁塞時(shí)cwnd的一半,然后把cwnd設(shè)置為閾值,然后執(zhí)行擁塞避免算法(加法增大)。由于跳過(guò)了cwnd從1起始的慢開(kāi)始過(guò)程,所以被稱為快恢復(fù)。

應(yīng)用層

  • 在C/S模型中,服務(wù)器性能的好壞決定了整個(gè)系統(tǒng)的性能,當(dāng)大量用戶請(qǐng)求服務(wù)時(shí),服務(wù)器就必然成為系統(tǒng)的瓶頸。P2P思想是整個(gè)網(wǎng)絡(luò)中的傳輸內(nèi)容不再保存在中心服務(wù)器上,每個(gè)結(jié)點(diǎn)都同時(shí)具有上傳、下載功能,各計(jì)算機(jī)之間大體對(duì)等。
  • DNS域名系統(tǒng)是因特網(wǎng)使用的命名系統(tǒng),用來(lái)把便于人們記憶的主機(jī)名(如www.baidu.com)轉(zhuǎn)換成便于機(jī)器處理的IP地址。DNS系統(tǒng)采用C/S模型,協(xié)議運(yùn)行在UDP上,使用53端口。
    每個(gè)域名服務(wù)器不但能夠進(jìn)行一些域名到IP地址的解析,而且具有連向其他域名服務(wù)器的信息。
  • FTP
    FTP提供交互式的訪問(wèn),允許客戶指明文件的類型與格式,并允許文件具有存取權(quán)限。它屏蔽了各計(jì)算機(jī)系統(tǒng)的細(xì)節(jié),因而適合于在異構(gòu)網(wǎng)絡(luò)中任意計(jì)算機(jī)之間傳送文件
    FTP采用C/S模式,使用TCP可靠傳輸,F(xiàn)TP服務(wù)器進(jìn)程由兩大部分組成:一個(gè)主進(jìn)程,負(fù)責(zé)接收新的客戶請(qǐng)求;另有若干個(gè)從屬進(jìn)程,負(fù)責(zé)處理單個(gè)請(qǐng)求。FTP在工作時(shí)使用兩個(gè)并行的TCP連接,一個(gè)是控制連接(端口號(hào)21),一個(gè)是數(shù)據(jù)連接(端口號(hào)20)
  • 電子郵件
    一個(gè)電子郵件系統(tǒng)由三個(gè)主要組件:用戶代理、郵件服務(wù)器、電子郵件使用的協(xié)議(SMTP、POP3)
    郵件發(fā)送協(xié)議用于用戶代理向郵件服務(wù)器發(fā)送郵件或郵件服務(wù)器之間發(fā)送郵件,使用SMTP(推);郵件讀取協(xié)議用于用戶代理從郵件服務(wù)器讀取郵件,如POP3(拉)
  • HTTP
    HTTP協(xié)議是無(wú)狀態(tài)的,使用Cookie加數(shù)據(jù)庫(kù)的方式來(lái)跟蹤用戶的活動(dòng),進(jìn)而執(zhí)行一些個(gè)性化的工作。HTTP采用TCP協(xié)議,保證了數(shù)據(jù)的可靠傳輸。
    HTTP可以使用非持續(xù)連接和持續(xù)連接:
    非持續(xù)連接:每個(gè)網(wǎng)頁(yè)元素對(duì)象(如jpeg圖,flash等)的傳輸都需要單獨(dú)建立一個(gè)TCP連接。
    持續(xù)連接:萬(wàn)維網(wǎng)服務(wù)器在發(fā)送響應(yīng)后仍然保持這條連接,使同一個(gè)客戶和服務(wù)器可以繼續(xù)在這條連接上傳送后續(xù)的HTTP請(qǐng)求和響應(yīng)報(bào)文。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 運(yùn)輸層協(xié)議概述 從通信和信息處理的角度看,運(yùn)輸層向它上面的應(yīng)用層提供通信服務(wù),它屬于面向通信部分的最高層,同時(shí)也是...
    srtianxia閱讀 2,777評(píng)論 0 2
  • 本書結(jié)構(gòu)是自頂向下的,所以請(qǐng)按下列順序閱讀: 1.計(jì)算機(jī)網(wǎng)絡(luò)自頂向下--應(yīng)用層2.計(jì)算機(jī)網(wǎng)絡(luò)自頂向下--運(yùn)輸層3....
    牛富貴兒閱讀 3,216評(píng)論 0 3
  • 安海北望,浪濤如刃,驚鴻掠影歸何處?風(fēng)蕭兮,云無(wú)依。醉臥飛雪寒山路,長(zhǎng)橋履冰皆悲苦。得,恍如夢(mèng);失,恍如夢(mèng)。 作者...
    耳洞先生閱讀 225評(píng)論 0 1
  • 拜國(guó)內(nèi)各大網(wǎng)盤商相繼倒下的功,我的電腦里留存了眾多網(wǎng)盤品牌的本地同步目錄,然后在近日硬盤空間告急時(shí),我覺(jué)得是時(shí)候去...
    iLester閱讀 962評(píng)論 0 1
  • 拉開(kāi)冰箱門,把柚子放進(jìn)去,菠蘿蜜的香甜味道趁機(jī)飄了出來(lái),依舊是讓我喜歡得不得了,就像那個(gè)喜歡的人出現(xiàn)在我的生命中,...
    LovelyorLonely閱讀 180評(píng)論 0 0

友情鏈接更多精彩內(nèi)容