運輸層解決的兩個基本問題:
1)兩個實體怎樣才能在一種會丟失或損壞數(shù)據(jù)的媒體上可靠地通信——協(xié)議
2)控制運輸層實體的傳輸速率以避免網(wǎng)絡擁塞,或從擁塞中恢復——擁塞控制
運輸層協(xié)議:
1)為運行在不同主機上的應用進程之間提供邏輯通信功能(網(wǎng)絡層提供主機之間的)
2)是在端系統(tǒng)中而不是在路由器中是實現(xiàn)的。
運輸層與網(wǎng)絡層的關系:
應用層報文 = 信封上的字符
進程 = 堂兄弟姐妹
主機 = 家庭
運輸層協(xié)議 = Ann和Bill
網(wǎng)絡層協(xié)議 = 郵政服務(包括郵車)
多種運輸層協(xié)議可以為應用程序提供不同的服務模型。
即使底層網(wǎng)絡協(xié)議不能再網(wǎng)絡層提供相應的服務,運輸層協(xié)議也能提供某些服務,如可靠的數(shù)據(jù)傳輸、加密等)
UDP和TCP的職責:
1)將兩個端系統(tǒng)間IP的交付服務擴展為運行在端系統(tǒng)上的兩個進程之間的交付服務。
2)可通過在其報文段首部中包括差錯檢查字段而提供完整性檢查。
TCP提供的附加服務:
1)可靠數(shù)據(jù)傳輸。使用流量控制、序號、確認和定時器,確保正確、按序?qū)?shù)據(jù)從發(fā)送進程交付到接收進程。將端系統(tǒng)間的不可靠IP服務轉(zhuǎn)換成了一種進程間的可靠數(shù)據(jù)傳輸服務。
2)擁塞控制。為每個通過一條擁塞網(wǎng)絡鏈路的連接平等地共享帶寬,可通過調(diào)節(jié)TCP連接的發(fā)送端發(fā)送進網(wǎng)絡的流量速率做到。(UDP流量是不可調(diào)節(jié)的)
一個進程有一個或多個套接字,相當于從網(wǎng)絡向進程傳遞數(shù)據(jù)和從進程向網(wǎng)絡傳遞數(shù)據(jù)的門戶,運輸層并沒有直接將數(shù)據(jù)交付給進程,而是將數(shù)據(jù)交付給了一個中間的套接字。

多路分解:將運輸層報文段中的數(shù)據(jù)交付到正確的套接字的工作。
多路復用:在源主機從不同套接字中收集數(shù)據(jù)塊,并為每個數(shù)據(jù)塊封裝上首部信息從而生成報文段,然后將報文段傳遞到網(wǎng)絡層。
它們與在某層的單一協(xié)議何時被位于接下來的較高層的多個協(xié)議使用有關。
多路復用要求:
1)套接字有唯一標識符;
UDP套接字由二元組標識:目的IP地址、目的端口號;
TCP套接字由四元組標識:源IP地址、源端口號、目的IP地址、目的端口號
2)每個報文段有特殊字段(源端口號和目的端口號)來指示該報文段所要交付到的套接字。
端口號:
1)一個16比特的數(shù),大小在0-65535之間;
2)0-1023的端口號是周知端口號;
3)當開發(fā)新的應用程序是,必須為其分配一個端口號;
4)應用程序的客戶端讓運輸層自動地(并且是透明的)分配端口號,而服務器端則分配一個特 定的端口號。
連接套接字并非總是有著一一對應的關系,如今高性能Web服務器通常只使用一個進程,但是為每個新的客戶連接創(chuàng)建一個具有新連接套接字的新線程(看作一個輕量級的子進程)。
許多應用更適合用UDP的原因:
1)關于何時、發(fā)送什么數(shù)據(jù)的應用層控制更精細。實時應用要求發(fā)送速率小、時延小、丟包容忍度高。
2)無需連接建立。UDP無建立連接的時延。
3)無連接狀態(tài)。能支持更多的活躍用戶。
4)分組首部開銷小。UDP僅有8字節(jié),TCP有20字節(jié)。

UDP的應用是可以實現(xiàn)可靠數(shù)據(jù)傳輸?shù)?,可通過在應用程序自身中建立可靠性機制完成(如增加確認與重傳機制),這樣就可無需受制于TCP擁塞控制及傳輸速率限制。