內(nèi)容根據(jù)哈工大-李全龍、聶蘭順老師-計(jì)算機(jī)網(wǎng)絡(luò)課程總結(jié)整理
1.提供的服務(wù)
發(fā)送方:接受上層協(xié)議調(diào)用,將報(bào)文分成多個報(bào)文段(segment),添加控制信息然后交給網(wǎng)絡(luò)層;多路復(fù)用。
接收方:從接收到的報(bào)文段中提取出數(shù)據(jù),交付上層協(xié)議;多路分用。
一個協(xié)議可能對應(yīng)多個上層協(xié)議或?qū)嶓w,比如tcp上層有http、smtp。假如主機(jī)上同時有兩個報(bào)文段交給了傳輸層,需要發(fā)送出去。傳輸層協(xié)議會為兩個報(bào)文的報(bào)文段加上控制信息,指明發(fā)送方和接收方。這叫做多路復(fù)用,同時接收方將來自不同發(fā)送方的消息區(qū)分開,交給不同的上層協(xié)議,叫做多路分用。
2.Internet中,傳輸層主要有兩種協(xié)議(還有一些其他的,比如google研究的QUID)
UDP user datagram protocol 用戶數(shù)據(jù)報(bào)協(xié)議
TCP transmission control protocol 傳輸控制協(xié)議
下面總結(jié)兩種協(xié)議
3.UDP
udp只做了兩件事情
- 一是分用和復(fù)用:上層協(xié)議將報(bào)文交給udp后,udp將其分成多個段,加上發(fā)送方和接收方的消息,交給網(wǎng)絡(luò)層,接收方再根據(jù)接收端口將數(shù)據(jù)導(dǎo)向指定端口。
- 二是提供了一個簡單的檢錯碼(稱校驗(yàn)和,checksum):接收方可以根據(jù)這個檢測傳輸過程中是否發(fā)生了錯誤。
具體做法是,將數(shù)據(jù)分成一個個的16bit的整數(shù),然后每個整數(shù)相加,如果高位有溢出,將溢出的數(shù)再加到末尾,這一過程稱為回卷,最后再取反碼。比如:
1111 0010 1011 1100
1010 0101 0000 0001
取和,高位溢出了一個1:
11001 0111 1011 1101
將溢出的1回卷:
1001 0111 1011 1101
0000 0000 0000 0001
得到:
1001 0111 1011 1110
再取反:
0110 1000 0100 0001
所以原始數(shù)據(jù)
1111 0010 1011 1100 1010 0101 0000 0001
的校驗(yàn)和為:
0110 1000 0100 0001
這種檢測碼在檢測出錯誤時,說明一定發(fā)生了錯誤,但是發(fā)生了錯誤,并不是一定能檢測出來。假如原始數(shù)據(jù)中兩個16bit的整數(shù)的首位,本來第一個是1,一個是0,變?yōu)榱艘粋€是0,一個是1,得到的校驗(yàn)和居然是一樣的。
UDP提供的是一種“盡力而為”的服務(wù),在發(fā)送前也不建立連接,只管發(fā)數(shù)據(jù),并不關(guān)心對方是否收到甚至對方是否存在。
UDP的報(bào)文段格式也很簡單

4.TCP
tcp遠(yuǎn)比udp復(fù)雜,發(fā)送正式數(shù)據(jù)前,雙方要建立連接(互相確定對方的存在)。然后再發(fā)送數(shù)據(jù),提供的是一種可靠傳輸服務(wù)。tcp的幾個特點(diǎn)是:可靠數(shù)據(jù)傳輸、流量控制、擁塞控制。詳細(xì)內(nèi)容在下面展開: