第三章传输层

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不是僅僅重送: 可能造成重覆
What to do?
傳送端 認可/否定 接收端的 ACK/NAK? 如果傳送端的 ACK/NAK遺失該怎麼辦?
重送, 但是可能造成正確被接 收的封包再一次重送!
處理重複的封包:
傳送端加入 順序編號 到每一
個封包 假如ACK/NAK毀損,則傳送
端重傳現在的封包 接收端丟棄 (doesn’t deliver
Q: 如何處理遺失?
傳送端等待,直到有些資 料或是ACK遺失再傳新傳 送
缺點?
方法: send傳送端等待ACK, 持續一段”合理”的時間
如果在這段時間內都沒有收到 ACK,則開始重傳
如果封包 (或ACK) 只是延遲了 ( 不是遺失了):
重傳會造成重覆的封包,但 是利用順序號碼已經可以處 理這個問題
將資料段中的內容看成 連續的16位元整數
加總檢查:將資料段中 內容相加 (1’s complement sum)
傳送者將加總檢查值放 入UDP加總檢查欄中
接收者:
計算收到資料段的加總檢查
查看是否算出來的值跟加總檢 查欄中的值相同:
NO – 偵測到錯誤
YES – 沒有偵測到錯誤. 但 是可能仍然有錯誤? 接下來
程序間作傳輸
必須依賴網路層服務
application transport network data link physical
network data link physical
network data link physical
network data link physical
network data link physical
接收端的有限狀態機
3: Transport Layer 3a-16
rdt2.0: 運作中的情形(有錯誤發生)
傳送端的有限狀態機
接收端的有限狀態機
3: Transport Layer 3a-17
rdt2.0 有一個潛在的缺點!
假如 ACK/NAK發生毀損會 發生什麼?
傳送端並不知道接收端發生 什麼情況!
接收端必需清楚的將表示 所回覆的封包順序號碼
傳送端收到重覆的ACK會 !
做出和收到NAK相同的 反應: 重送現在的封包
sender FSM
3: Transport Layer 3a-22
rdt3.0: 有錯誤和遺失的頻道
新的假設: 基礎的頻道也可 能遺失封包(資料或是 ACKs)
加總比對方法, 順序號碼, ACKs, 重新傳送,都有幫 助,但並不足夠
傳送端真的在傳送
資料所佔的比例
=
8 microsec 30.016 msec
= 0.00015
每微秒送30個1KB大小的封包msec -> 則在頻寬為1 Gbps 的連結 上的吞吐量為33kB/秒
網路的通訊協訂限制了物理層的資源!
3: Transport Layer 3a-27
狀態會指示預期的順序號 碼是0或是1
注意: 接收端不知道它上 次發送的ACK/NAK是否 成功的送達傳送端
3: Transport Layer 3a-21
rdt2.2: a NAK-free protocol
某些函式如 rdt2.1只使 用NAKs
接收端傳送ACK表示成功 收到最後一個封包,而 不用
伺服器 B
網路客戶端主機 C
來源埠:23 目的地埠: x
使用的埠: 簡易遠端登入應用程式
來源 IP: C 目的地 IP: B
來源埠: y 目的地埠: 80
來源 IP: C 目的地 IP: B
來源埠: x 目的地埠: 80
網路客戶端主機 A
來源 IP: A 目的地 IP: B
來源埠: x 目的地埠: 80
的上層
deliver_data(): 由rdt呼 叫來傳送資料給上層
傳送端
接收端
udt_send(): 由rdt呼叫, 利用不可靠的頻道傳送封包給接
收端
rdt_rcv(): 當封包到達接收端的頻 道時被呼叫
3: Transport Layer 3a-11
可靠資料傳輸:開端
我們將會:
漸增地開發傳送端與接收端的可靠資料傳輸協定 (rdt)
考慮只有單向的資料傳輸
但是控制資訊將會雙向傳送!
利用有限狀態機(FSM)來詳細說明傳送端與接收端
狀態: 當身處於這個
”狀態”時, 接下來將進入 哪個狀態只能由下一 個發生事件來決定
狀態 1
造成狀態轉變的事件 狀態轉變時所要做的動作
事件 動作
狀態 2
3: Transport Layer 3a-12
network data link physical
network data link physical
network data link physical
network data link physical
application transport network data link physical
回想: UDP 加總檢查去偵測錯誤位元
問題: 如何從錯誤中回復:
認可 (ACKs): 接收端會明確地告訴傳送端封包已接收完成 否定認可 (NAKs): 接收端會明確地的告訴傳送端封包有錯誤
在接收到否定認可之後,傳送端會重新傳送封包 人類的劇本也是有認可跟否定認可嗎?
rdt2.0 的新機制(beyond rdt1.0):
連接管理
擁塞控制原理
TCP 擁塞控制
3: Transport Layer 3a-1
傳輸服務及協定
提供在不同的主機上執行 的應用程序一種邏輯式的 通訊方式
傳輸層是在每個末端主機 上運行
傳輸層 vs 網路層服務:
網路層: 資料是在主機與
主機間做傳輸
傳輸層: 資料是在程序與
接受端必需註明ACK是在回 應哪個順序號碼的封包
需要有倒數計時器
3: Transport Layer 3a-23
rdt3.0 sender
3: Transport Layer 3a-24
rdt3.0 in action
3: Transport Layer 3a-25
rdt3.0 in action
3: Transport Layer 3a-26
Performance of rdt3.0
rdt3.0 可行,但效果不張 例子: 頻寬1 Gbps, 點對點傳輸延遲15 ms, 封包大小1KB:
Ttransmit =
8kb/pkt 10**9 b/sec
= 8 microsec
效能 = U =
Rdt1.0: 在可靠頻道上作可靠傳輸
底層的頻道絕對可靠
沒有位元錯誤 沒有封包遺失
分開討論傳送端與接收端的有限狀態機 :
傳送端將資料送入底層的頻道 接收端從底層的頻道讀取資料
3: Transport Layer 3a-13
Rdt2.0: 利用錯誤位元的頻道
底層的頻道可能會使封包中的位元發生錯誤
錯誤偵測 接收端回饋: 控制訊息 (認可,否定認可) 接放端->傳送端
3: Transport Layer 3a-14
rdt2.0: 詳述有限狀態機
傳送端的有限狀態機
接收端的有限狀態機
3: Transport Layer 3a-15
rdt2.0:運作中的情形 (沒有錯誤發生)
傳送端的有限狀態機
非連線導向式:
UDP傳送者與接收者之間 沒有互相交換控制訊息
每個 UDP 資料段自己獨 立地操作
為什麼會有UDP ?
無需建立連線 (建立連線 可能會增加delay)
簡單: 沒有連線狀態記 錄在傳送者與接收者上
資料段標頭欄很小
沒有擁塞控制: UDP 可 以如同疾風般地快速散 撥資料段
網路 伺服器 B 使用的埠: 網路伺服器
3: Transport Layer 3a-6
UDP: 用戶資料訊息協定 [RFC 768]
“no frills,” “bare bones” 網 路傳輸協定
“最省力式” 服務, UDP 資料 段可能形式為:
易遺失的
傳送不按照順序排列的資 料段給應用程式
up) 重覆的封包
停下並等待 傳送端送出一個封包,然後 等待接收端的回應
3: Transport Layer 3a-18
rdt2.1: sender, handles garbled ACK/NAKs
3: Transport Layer 3a-19
rdt2.1: receiver, handles garbled ACK/NAKs
不可靠的 (最省力式 “best -effort”), 不按照 順序的單撥或多撥 (multicast) 傳輸:UDP
不可用的服務:
即時服務 頻寬保證 可靠的多撥
application transport network data link physical
network data link physical
第三章: 傳輸層
章節目標:
章節概要:
了解傳輸層所提供的服 傳輸層的服務
務之背後原理:
多工傳輸/分工傳輸
多工傳輸/分工傳輸 可靠的資料傳輸 流量控制 擁塞控制
無連接傳輸模式: UDP 可靠的資料傳輸原理 連接導向傳輸: TCP
在網際網路上舉例說明 以及實做
可靠的資料傳輸 流量控制
3: Transport Layer 3a-7
UDP: 更多資訊
通常用於多媒體資料串流應 用程式上
能容忍資料段遺失 對速率相當敏感
其他 UDP 的使用 (為什麼要用UDP?):
長度,在UDP 資料段中是
以位元組計
算 ,包含 標頭欄
DБайду номын сангаасS 網域名稱系統
SNMP 簡易網路管理協定
號、IP位置為基準
每個資料段中,傳送者、接 收者的連接埠號
回想:特定的應用軟體具 有廣為了解的埠號
32 bits 來源端埠號 目的地端埠號
其他標頭區域
應用程式 資料 (訊息)
TCP/UDP 資料段格式
3: Transport Layer 3a-5
多工傳輸/分工傳輸:範例
來源埠: x
主機 A 目的地埠: 23
接收者
P4
M
M
application transport network
M P2
application transport network
3: Transport Layer 3a-4
多工傳輸/分工傳輸
多工傳輸: 從不同的應用程序中收集資料 ,由標頭將資料包住 (之後將 用於分工傳輸)
多工傳輸/分工傳輸: 以傳送者、接收者的連接埠
在UDP上做可靠傳輸: 在應用層增加可靠度
特殊應用程式錯誤回復!
32 bits
來源端埠號 長度
目的地端埠號 加總檢查
應用程式 資料 (訊息)
UDP 資料段格式
3: Transport Layer 3a-8
UDP 加總檢查
目標:偵測傳送後的資料段中的”錯誤” (e.g., 錯誤位元)
傳送者:
network data link physical
application transport network data link physical
3: Transport Layer 3a-2
傳輸層通訊協定
網際網路傳輸服務:
可靠的, 按照順序的單撥 (unicast) 傳輸 :TCP
擁塞 流量控制 連線設定
3: Transport Layer 3a-3
多工傳輸/分工傳輸
回想: 資料段 – 在傳輸層
實體間作交換的資料單 元 aka TPDU: 傳輸層資
料單元
P3
應用層資料
資料段
P1
標頭
M
資料段
application Ht M transport
Hn segment network
分工傳輸: 傳送收到的資料段 到正確的應用層程序中
3: Transport Layer 3a-20
rdt2.1: 討論
傳送端: 在封包中加入順序號碼
兩個順序號碼(0,1)足夠 嗎?為什麼?
必需確定是否收到的錯 誤的ACK/NAK
狀態數目的兩倍
狀態必需”記住””現在”的 順序號碼是0還是1
接收端:
必需確定是否收到重覆 的封包
繼續討論 ….
3: Transport Layer 3a-9
可靠資料傳輸原理
在應用、傳輸、連結層具有很大的重要性 前十大重要的網路論題!
不可靠的頻道之特性, 將會決定可靠資料傳輸協定(rdt)的複雜度 。
3: Transport Layer 3a-10
可靠資料傳輸:開端
rdt_send(): 由上層呼叫, (e.g., 由 應用層). 使資料通過並傳送到接收端
相关文档
最新文档