Bài giảng Mạng máy tính - Chương 3: Lớp Transport
Tóm tắt Bài giảng Mạng máy tính - Chương 3: Lớp Transport: ...) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq1(rcvpkt) rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send...hấp nhận Internet checksum (giống UDP) đếm bởi số byte của dữ liệu Lớp Transport 58 Các số thứ tự TCP và ACK Các số thứ tự: dòng byte “đánh số” byte đầu tiên trong dữ liệu của đoạn các ACK: số thứ tự của byte kế tiếp được chờ đợi từ phía bên kia ACK tích lũy Hỏi: làm t... buffers Host A λin : original data Host B λout Lớp Transport 80 Các nguyên nhân/chi phí của tắc nghẽn: tình huống 2 1 router, các bộ đệm có giới hạn bên gửi truyền lại các gói đã mất chia sẻ vô hạn các bộ đệm ouput Host A λin : dữ liệu gốc Host B λout λ'in : dữ liệu gốc, cùng vớ...
*DevRTT
Sau đó thiết lập timeout interval:
Lớp Transport 63
TCP: truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt
trên dịch vụ không tin
cậy IP
các đoạn Pipelined
các ACK tích lũy
TCP dùng bộ định thì
truyền lại đơn
Truyền lại được kích
hoạt bởi:
các sự kiện timeout
các ack trùng lặp
lúc đầu khảo sát các
bên gửi TCP đơn giản:
lờ đi các ack trùng lặp
lờ đi điều khiển luồng,
điều khiển tắc nghẽn
Lớp Transport 64
TCP các sự kiện:
dữ liệu đã nhận từ ứng
dụng:
tạo đoạn với số thứ tự
của nó
số thứ tự là số theo
byte dữ liệu đầu tiên
khởi động bộ định thì
nếu chưa chạy
khoảng thời gian hết
hạn:
TimeOutInterval
timeout:
gửi lại đoạn nào gây ra
timeout
khởi động lại bộ định
thì
Ack đã nhận:
cập nhật cái gì sẽ được
ACK
khởi động bộ định thì
nếu có các đoạn còn chờ
Lớp Transport 65
TCP
bên gửi
(đơn giản)
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum
loop (forever) {
switch(event)
event: data received from application above
create TCP segment with sequence number NextSeqNum
if (timer currently not running)
start timer
pass segment to IP
NextSeqNum = NextSeqNum + length(data)
event: timer timeout
retransmit not-yet-acknowledged segment with
smallest sequence number
start timer
event: ACK received, with ACK field value of y
if (y > SendBase) {
SendBase = y
if (there are currently not-yet-acknowledged segments)
start timer
}
} /* end of loop forever */
Chú thích:
• SendBase-1: byte
vừa được ACK
tích lũy
Ví dụ:
• SendBase-1 = 71;
y= 73, vì thế bên nhận
muốn 73+ ;
y > SendBase, vì thế
dữ liệu mới được
chấp nhận
Lớp Transport 66
TCP: các tình huống truyền lại
Host A
Seq=100, 20 bytes data
A C
K = 1
0 0
time
timeout sớm
Host B
Seq=92, 8 bytes data
A C K
= 1 2 0
Seq=92, 8 bytes data
S
e
q
=
9
2
t
i
m
e
o
u
t
A C K
= 1 2 0
Host A
Seq=92, 8 bytes data
A C K =
1 0 0
loss
t
i
m
e
o
u
t
tình huống mất ACK
Host B
X
Seq=92, 8 bytes data
A C K =
1 0 0
time
S
e
q
=
9
2
t
i
m
e
o
u
t
SendBase
= 100
SendBase
= 120
SendBase
= 120
Sendbase
= 100
Lớp Transport 67
TCP: các tình huống truyền lại (tt)
Host A
Seq=92, 8 bytes data
A C K =
1 0 0
loss
t
i
m
e
o
u
t
tình huống ACK tích lũy
Host B
X
Seq=100, 20 bytes data
A C K =
1 2 0
time
SendBase
= 120
Lớp Transport 68
TCP sinh ra ACK [RFC 1122, RFC 2581]
Sự kiện tại bên nhận
Đoạn đến với đúng số thứ tự
mong muốn. Tất cả dữ liệu đến
đã được ACK
Đoạn đến với đúng số thứ tự
mong muốn. Một đoạn khác đang
chờ ACK
Các đoạn đến không thứ tự
lớn hơn số thứ tự đoạn mong muốn.
Có khoảng trống
Đoạn đến
lấp đầy từng phần hoặc toàn bộ
khoảng trống
TCP bên nhận hành động
ACK trễ. Chờ đến 500ms
cho đoạn kế tiếp. Nếu không có đoạn
kế tiếp, gửi ACK
Gửi ngay một ACK tích lũy, chấp nhận
cho cả các đoạn theo thứ tự
Gửi ngay ACK trùng lặp, chỉ thị số thứ tự
đoạn của byte kế tiếp đang mong chờ
Gửi ngay ACK, với điều kiện là đoạn
bắt đầu ngay điểm có khoảng trống
Lớp Transport 69
Truyền lại nhanh
Chu kỳ Time-out
thường tương đối dài:
độ trễ dài trước khi gửi
lại gói đã mất
Xác nhận các đoạn đã
mất bằng các ACK
trùng lặp.
bên gửi thường gửi nhiều
đoạn song song
Nếu đoạn bị mất, sẽ xảy
ra tình trạng giống như
nhiều ACK trùng nhau
Nếu bên gửi nhận 3 ACK
của cùng một dữ liệu, nó
cho là đoạn sau dữ liệu
đã ACK bị mất:
Truyền lại nhanh: gửi lại
đoạn trước khi bộ định thì
hết hạn
Lớp Transport 70
sự kiện: ACK đã nhận, với trường là y
if (y > SendBase) {
SendBase = y
if (there are currently not-yet-acknowledged segments)
start timer
}
else {
increment count of dup ACKs received for y
if (count of dup ACKs received for y = 3) {
resend segment with sequence number y
}
Giải thuật truyền lại nhanh:
một ACK trùng lặp cho
đoạn đã được ACK
Truyền lại nhanh
Lớp Transport 71
TCP điều khiển luồng
bên nhận của kết nối
TCP có một bộ đệm
nhận:
dịch vụ so trùng tốc
độ: so trùng tốc độ gửi
với tốc độ nhận của ứng
dụng
tiến trình ứng dụng có
thể chậm tại lúc đọc bộ
đệm
bên gửi sẽ không làm
tràn bộ đệm vì truyền
quá nhiều và quá nhanh
điều khiển luồng
Lớp Transport 72
TCP điều khiển luồng: cách làm?
(Giả sử bên nhận TCP loại bỏ
các đoạn không có thứ tự)
dự phòng trong bộ đệm
= RcvWindow
= RcvBuffer-[LastByteRcvd -
LastByteRead]
Bên nhận thông báo
khoảng dự trữ nhờ giá
trị RcvWindow trong
các đoạn
Bên gửi hạn chế dữ liệu
không được ACK vào
RcvWindow
bảo đảm bộ đệm nhận
không tràn
Lớp Transport 73
TCP quản lý kết nối
Chú ý: Bên gửi và bên nhận
TCP thiết lập “kết nối” trước
khi trao đổi dữ liệu
khởi tạo các biến TCP:
các số thứ tự đoạn
thông tin các bộ đệm,
điều khiển luồng (như
RcvWindow)
client: người khởi xướng kết
nối
Socket clientSocket = new
Socket("hostname","port
number");
server: được tiếp xúc bởi
client
Socket connectionSocket =
welcomeSocket.accept();
3 phương pháp bắt tay:
Bước 1: client host gửi đoạnTCP
SYN đến server
xác định số thứ tự khởi đầu
không phải dữ liệu
Bước 2: server host nhận SYN,
trả lời với đoạn SYNACK
server cấp phát các bộ
đệm
xác định số thứ tự khởi đầu
Bước 3: client nhận SYNACK, trả
lời với đoạn ACK (có thể chứa
dữ liệu)
Lớp Transport 74
TCP quản lý kết nối (tt)
Đóng một kết nối:
client đóng socket:
clientSocket.close();
Bước 1: client gửi đoạn điều
khiển TCP FIN đến server
Bước 2: server nhận FIN, trả
lời với ACK. Đóng kết nối,
gửi FIN.
client
FIN
server
A C K
ACK
F I N
đóng
đóng
đã đóng
t
h
ờ
i
g
i
a
n
c
h
ờ
Lớp Transport 75
TCP quản lý kết nối (tt)
Bước 3: client nhận FIN, trả
lời với ACK.
Trong khoảng “thời gian
chờ” – sẽ phản hồi với
ACK để nhận các FIN
Bước 4: server, nhận ACK.
Kết nối đã đóng.
Chú ý: với một sửa đổi nhỏ,
có thể quản lý nhiều FIN
đồng thời.
client
FIN
server
A C K
ACK
F I N
đang đóng
đang đóng
đã đóng
t
h
ờ
i
g
i
a
n
c
h
ờ
đã đóng
Lớp Transport 76
TCP quản lý kết nối (tt)
chu kỳ sống của
TCP client
chu kỳ sống của
TCP server
3.6 Các nguyên lý của điều
khiển tắc nghẽn
Lớp Transport 77
Lớp Transport 78
Các nguyên lý điều khiển tắc nghẽn
Tắc nghẽn:
“quá nhiều nguồn gửi quá nhanh và quá nhiều dữ liệu
đến mạng”
khác với điều khiển luồng!
các biểu hiện:
các gói bị mất (tràn bộ đệm tại các router)
các độ trễ quá dài (xếp hàng trong bộ đệm của
router)
là 1 trong 10 vấn đề nan giải nhất!
Lớp Transport 79
Các nguyên nhân/chi phí của tắc nghẽn:
tình huống 1
2 gửi, 2 nhận
1 router, các bộ
đệm không giới hạn
không có truyền lại
các độ trễ lớn
hơn khi tắc
nghẽn
năng suất có
thể đạt tối đa
unlimited shared
output link buffers
Host A λin : original data
Host B
λout
Lớp Transport 80
Các nguyên nhân/chi phí của tắc nghẽn:
tình huống 2
1 router, các bộ đệm có giới hạn
bên gửi truyền lại các gói đã mất
chia sẻ vô hạn
các bộ đệm ouput
Host A λin : dữ liệu gốc
Host B
λout
λ'in : dữ liệu gốc, cùng với
dữ liệu truyền lại
Lớp Transport 81
Các nguyên nhân/chi phí của tắc nghẽn:
tình huống 2
luôn luôn:
truyền lại “hoàn toàn” chỉ khi mất mát:
truyền lại vì trễ (không mất) làm cho lớn hơn với cùng
λ
in
λout= λ
in
λout>λ
inλout
“các chi phí” của tắc nghẽn:
nhiều việc (truyền lại)
các truyền lại không cần thiết: liên kết nhiều bản sao của gói
R/2
R/2λin
λ
o
u
t
b.
R/2
R/2λin
λ
o
u
t
a.
R/2
R/2λin
λ
o
u
t
c.
R/4
R/3
Lớp Transport 82
Các nguyên nhân/chi phí của tắc nghẽn:
tình huống 3
4 người gửi
các đường qua nhiều hop
timeout/truyền lại
λ
in
Hỏi: điều gì xảy ra nếu và
tăng lên?
λ
in
chia sẻ vô hạn
các bộ đệm ouput
Host A λin : dữ liệu gốc
Host B
λout
λ'in : dữ liệu gốc, cùng
với dữ liệu truyền lại
Lớp Transport 83
Các nguyên nhân/chi phí của tắc nghẽn:
tình huống 3
“chi phí” khác của tắc nghẽn:
khi các gói bị bỏ, bất kỳ “khả năng truyền upstream
dùng cho gói đó sẽ bị lãng phí!”
H
o
s
t
A
H
o
s
t
B
λ
o
u
t
Lớp Transport 84
Các cách tiếp cận đối với điều khiển tắc
nghẽn
điều khiển tắc nghẽn end-
end:
không có phản hồi rõ ràng
từ mạng
tắc nghẽn được suy ra từ
việc quan sát các hệ thống
đầu cuối có mất mát, trễ
tiếp cận được quản lý bởi
TCP
điều khiển tắc nghẽn có sự
hỗ trợ của mạng:
các router cung cấp phản
hồi về các hệ thống đầu cuối
1 bit duy nhất chỉ thị tắc
nghẽn (SNA, DECbit,
TCP/IP ECN, ATM)
tốc độ sẽ gửi được xác
định rõ ràng
2 cách:
Lớp Transport 85
Ví dụ: điều khiển tắc nghẽn ATM ABR
ABR: tốc độ bit sẵn
sàng:
“dịch vụ mềm dẻo”
nếu đường gửi “chưa hết”:
bên gửi sẽ dùng băng
thông sẵn sàng
nếu đường gửi tắc nghẽn:
bên gửi điều tiết với
tốc độ tối thiểu
RM (resource management):
gửi bởi bên gửi, rải rác với các ô
dữ liệu
các bit trong ô thiết lập bởi các
switch
bit NI : không tăng tốc độ
(tắc nghẽn nhẹ)
bit CI : tắc nghẽn rõ rệt
Các ô RM được trả về bên gửi từ
bên nhận với nguyên vẹn các bit
Lớp Transport 86
Ví dụ: điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ô RM
switch đã tắc nghẽn có thể có giá trị ER thấp hơn trong ô
tốc độ gửi do đó có thể được hỗ trợ tối đa trên đường
EFCI bit trong các ô dữ liệu: được cài giá trị 1 trong
switch đã tắc nghẽn
nếu ô dữ liệu đứng trước ô RM có cài EFCI, bên gửi sẽ cài bit
CI trong ô RM trả về
3.7 Điều khiển tắc nghẽn TCP
Lớp Transport 87
Lớp Transport 88
TCP điều khiển tắc nghẽn: additive tăng lên,
multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion
window
Cách tiếp cận: tăng tốc độ truyền (kích thước cửa sổ),
tìm khả năng băng thông có thể, cho đến khi có mất
mát xảy ra
additive tăng lên: tăng CongWin bởi 1 MSS mỗi RTT
cho đến khi có mất mát xảy ra
multiplicative giảm xuống: bỏ CongWin trong nửa
giai đoạn sau khi mất mát
time
k
í
c
h
t
h
ư
ớ
c
c
ử
a
s
ổ
t
ắ
c
n
g
h
ẽ
n
Tìm kiếm
băng thông
Lớp Transport 89
TCP điều khiển tắc nghẽn: chi
tiết
bên gửi hạn chế việc truyền:
LastByteSent-LastByteAcked
≤ CongWin
Công thức,
CongWin thay đổi, chức năng là
nhận biết tắc nghẽn trên mạng
Làm thế nào bên gửi nhận
biết tắc nghẽn?
mất mát xảy ra =
timeout hoặc 3 ack
trùng lặp
bên gửi giảm tốc độ
(CongWin) sau khi mất
mát xảy ra
3 cơ chế:
AIMD
khởi động chậm
thận trọng sau khi có
các sự kiện timeout
tốc độ = CongWin
RTT Bytes/s
Lớp Transport 90
TCP khởi động chậm
Khi kết nối bắt đầu,
CongWin = 1 MSS
Ví dụ: MSS = 500 bytes &
RTT = 200 ms
tốc độ khởi tạo = 20 kbps
băng thông sẵn sàng có
thể >> MSS/RTT
mong muốn nhanh chóng
tăng tốc lên tốc độ có thể
đáp ứng
Khi kết nối bắt đầu, tăng
tốc lên rất nhanh cho
đến khi sự cố mất mát
xảy ra đầu tiên
Lớp Transport 91
TCP khởi động chậm (tt)
Khi kết nối bắt đầu,
tăng tốc lên rất nhanh
cho đến khi sự cố mất
mát xảy ra đầu tiên:
nhân đôi CongWin mỗi
RTT
hoàn thành nhờ tăng
CongWin ứng với mỗi
ACK đã nhận
Tổng kết: tốc độ khởi
đầu là chậm nhưng sau
đó tăng tốc rất nhanh
Host A
1 đoạn
R
T
T
Host B
thời gian
2 đoạn
4 đoạn
Lớp Transport 92
Tinh chế
Hỏi: Khi nào việc tăng
tốc trở thành tuyến
tính?
Trả lời: Khi CongWin
đạt đến 1/2 giá trị
của nó trước khi
timeout.
Hiện thực:
Ngưỡng thay đổi
Tại thời điểm có sự cố mất
mát, ngưỡng được cài giá trị
bằng ½ của CongWin ngay
trước đó
Lớp Transport 93
Tinh chế: nhận biết mất mát
Sau 3 ACK trùng lặp:
CongWin sẽ giảm 1/2
kích thước cửa sổ tăng
tuyến tính
nhưng sau sự cố timeout:
CongWin thay giá trị
bằng 1 MSS;
kích thước cửa sổ tăng
cấp lũy thừa
khi đến một ngưỡng thì
tăng tuyến tính
3 ACK trùng nhau chỉ ra
khả năng truyền của mạng
timeout chỉ thị “nhiều
cảnh báo” về tình huống
tắc nghẽn
Nguyên lý:
Lớp Transport 94
Tổng kết: TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold, bên gửi đang trong
giai đoạn khởi động chậm, kích thước cửa sổ tăng
nhanh theo cấp lũy thừa.
Khi CongWin trên Threshold, bên gửi đang trong
giai đoạn tránh tắc nghẽn, kích thước cửa sổ tăng
nhanh theo cấp tuyến tính.
Khi có 3 ACK trùng lặp xảy ra, Threshold =
CongWin/2 và CongWin = Threshold.
Khi timeout xảy ra, Threshold = CongWin/2 và
CongWin = 1 MSS.
Lớp Transport 95
TCP điều khiển tắc nghẽn bên gửi
Trạng thái Sự kiện TCP bên gửi hành động Diễn giải
Slow Start
(SS)-Khởi
động chậm
ACK báo
nhận cho dữ
liệu chưa
ACK trước
đó
CongWin = CongWin + MSS,
If (CongWin > Threshold)
cài đặt trạng thái “Tránh tắc
nghẽn”
Hậu quả làm tăng gấp đôi
CongWin mỗi RTT
Congestion
Avoidance
(CA) –Tránh
tắc nghẽn
ACK báo
nhận cho dữ
liệu chưa
ACK trước
đó
CongWin = CongWin+MSS *
(MSS/CongWin)
Additive tăng lên, làm tăng
CongWin lên 1 MSS mỗi
RTT
SS hoặc CA Sự cố mất
mát xảy ra
khi thấy có 3
ACK trùng
lặp
Threshold = CongWin/2,
CongWin = Threshold,
cài đặt trạng thái “Tránh tắc
nghẽn”
Khôi phục nhanh, hiện thực
giảm xuống multiplicative.
CongWin sẽ không giảm
xuống dưới 1 MSS.
SS hoặc CA Timeout Threshold = CongWin/2,
CongWin = 1 MSS,
cài đặt trạng thái “Khởi động
chậm”
Vào chế độ “Khởi động
chậm”
SS hoặc CA ACK trùng
lặp
Đếm ACK tăng lên cho đoạn
vừa được ACK
CongWin và Threshold
không thay đổi
Lớp Transport 96
TCP throughput
Throughout trung bình của TCP biểu diễn
qua kích thước của sổ và RTT?
Bỏ qua trạng thái “Khởi động chậm”
Cho W là kích thước cửa sổ khi có mất mát
xảy ra.
Khi kích thước cửa sổ = W, lưu lượng =
W/RTT
Chỉ ngay sau khi mất mát, cửa sổ giảm xuống
= W/2, lưu lượng = W/2RTT.
throughout trung bình: 0.75 W/RTT
Lớp Transport 97
TCP tương lai
Ví dụ: các đoạn dài 1500 byte, RTT 100ms, lưu
lượng 10 Gbps
Kích thước cửa sổ yêu cầu W = 83,333 đoạn trên
đường truyền
Lưu lượng trong các trường hợp mất mát:
➜ L = 2·10-10
Phiên bản mới của TCP dành cho nhu cầu tốc độ cao!
LRTT
MSS⋅22.1
Lớp Transport 98
Mục tiêu: nếu K phiên làm việc TCP chia sẻ kết nối cổ
chai của băng thông là R, mỗi phiên có tốc độ
trung bình là R/K
TCP kết nối 1
router cổ chai
khả năng RTCP kết nối 2
TCP: tính công bằng
Lớp Transport 99
Tại sao phải TCP công bằng?
2 phiên làm việc cạnh tranh nhau:
Additive tăng, lưu lượng tăng
multiplicative giảm lưu lượng tương xứng
R
R
chia sẻ băng thông bằng nhau
Connection 1 throughput
C o
n n
e c
t i
o n
2
t
h r
o u
g h
p u
t
tránh tắc nghẽn: additive tăng lên
mất mát: giảm cửa sổ bằng 1/2
tránh tắc nghẽn: additive tăng lên
mất mát: giảm cửa sổ bằng 1/2
Lớp Transport 100
TCP: tính công bằng (tt)
Tính công bằng & UDP
nhiều ứng dụng thường
không dùng TCP
không muốn tốc độ bị
điều tiết do điều khiển
tắc nghẽn
Thay bằng dùng UDP:
truyền audio/video với
tốc độ ổn định, chịu
được mất mát
Nghiên cứu: giao thức
thân thiện với TCP
Tính công bằng & các kết nối
TCP song song
không có gì ngăn cản việc
ứng dụng mở các kết nối
song song giữa 2 host.
Trình duyệt Web làm giống
như thế
Ví dụ: tốc độ R hỗ trợ 9
kết nối ;
ứng dụng mới yêu cầu 1 TCP,
có tốc độ R/10
ứng dụng mới yêu cầu 11 TCP,
có tốc độ R/2 !
Lớp Transport 101
Mô hình trễ
Hỏi: Mất bao lâu để nhận 1
đối tượng từWeb server
sau khi gửi yêu cầu?
Bỏ qua tắc nghẽn, trễ bị ảnh
hưởng bởi:
thiết lập kết nối TCP
trễ truyền dữ liệu
khởi động chậm
Notation, các giả định:
Giả sử một kết nối giữa
client và server có tốc độ R
S: MSS (bits)
O: kích thước đối tượng
(bits)
không truyền lại (không mất
mát, không hỏng)
Kích thước cửa sổ:
Giả định 1: cửa sổ tắc nghẽn
cố định, có W đoạn
Sau đó cửa sổ thay đổi, mô
hình khởi động chậm
Lớp Transport 102
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiên:
WS/R > RTT + S/R: cho đoạn
đầu tiên trong cửa sổ trả
về trước khi cửa sổ dữ liệu
gửi ACK
trễ = 2RTT + O/R
Lớp Transport 103
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai:
WS/R < RTT + S/R: sent
chờ cho ACK sau khi gửi
dữ liệu
trễ = 2RTT + O/R
+ (K-1)[S/R + RTT - WS/R]
Lớp Transport 104
TCP Mô hình trễ: Khởi động chậm (1)
Bây giờ giả sử kích thước cửa sổ tăng lên tùy theo quá
trình khởi động chậm
Độ trễ của một đối tượng sẽ là:
R
S
R
SRTTP
R
ORTTLatency P )12(2 −−⎥⎦
⎤⎢⎣
⎡ +++=
trong đó P là số lần TCP rảnh ở tại server:
}1,{min −= KQP
- trong đó Q là số lần server rảnh nếu đối tượng đã khởi tạo kích thước
- và K là số lượng cửa sổ bao trùm đối tượng
Lớp Transport 105
TCP Mô hình trễ: Khởi động chậm (2)
RTT
initiate TCP
connection
request
object
first window
= S/R
second window
= 2S/R
third window
= 4S/R
fourth window
= 8S/R
complete
transmissionobject
delivered
time at
client
time at
server
Ví dụ:
• O/S = 15 đoạn
• K = 4 cửa sổ
• Q = 2
• P = min{K-1,Q} = 2
Server rảnh P=2 lần
Các thành phần trễ:
• 2 RTT dành cho thiết
lập kết nối và yêu cầu
• O/R để truyền đối
tượng
•thời gian server rảnh
bởi vì khởi động chậm
Server rảnh:
P = min{K-1,Q} lần
Lớp Transport 106
TCP Mô hình trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTT
R
O
P
k
P
k
P
p
p
)12(][2
]2[2
2delay
1
1
1
−−+++=
−+++=
++=
−
=
=
∑
∑
th window after the timeidle 2 1 k
R
SRTT
R
S k =⎥⎦
⎤⎢⎣
⎡ −+
+
−
ementacknowledg receivesserver until
segment send tostartsserver when from time=+ RTT
R
S
window kth the transmit totime2 1 =−
R
Sk
RTT
initiate TCP
connection
request
object
first window
= S/R
second window
= 2S/R
third window
= 4S/R
fourth window
= 8S/R
complete
transmissionobject
delivered
time at
client
time at
server
Lớp Transport 107
TCP Mô hình trễ (4)
⎥⎥
⎤⎢⎢
⎡ +=
+≥=
≥−=
≥+++=
≥+++=
−
−
)1(log
)}1(log:{min
}12:{min
}/222:{min
}222:{min
2
2
110
110
S
O
S
Okk
S
Ok
SOk
OSSSkK
k
k
k
L
L
cách tính toán Q tương tự (xem HW).
K = số lượng cửa sổ bao trùm đối tượng
Làm thế nào tính được K ?
Lớp Transport 108
HTTP Mô hình
Giả sử trang Web chứa:
1 trang HTML (kích thước O bits)
M hình ảnh (mỗi cái kích thướcO bits)
HTTP không bền vững:
M+1 TCP kết nối
Thời gian đáp ứng = (M+1)O/R + (M+1)2RTT + tổng số thời gian
rảnh
HTTP bền vững:
2 RTT để yêu cầu và nhận file HTML
1 RTT để yêu cầu và nhận M hình ảnh
Thời gian đáp ứng = (M+1)O/R + 3RTT + tổng số thời gian rảnh
HTTP không bền vững với X kết nối song song
Giả sử M/X là số nguyên.
1 TCP kết nối cho file
M/X thiết lập các kết nối song song cho các hình ảnh
Thời gian đáp ứng = (M+1)O/R + (M/X + 1)2RTT + tổng số thời
gian rảnh
Lớp Transport 109
0
2
4
6
8
10
12
14
16
18
20
28
Kbps
100
Kbps
1
Mbps
10
Mbps
non-persistent
persistent
parallel non-
persistent
HTTP thời gian đáp ứng (giây)
RTT = 100 msec, O = 5 Kbytes, M=10 và X=5
Với băng thông thấp, thời gian kết nối & đáp ứng trội hơn thời gian
truyền
Các kết nối bền vững chỉ cho sự cải thiện không đáng kể trên các kết nối
song song
Lớp Transport 110
0
10
20
30
40
50
60
70
28
Kbps
100
Kbps
1
Mbps
10
Mbps
non-persistent
persistent
parallel non-
persistent
HTTP thời gian đáp ứng (giây)
RTT =1 sec, O = 5 Kbytes, M=10 and X=5
Với RTT lớn hơn, thời gian đáp ứng trội hơn thời gian trễ chờ thiết lập kết nối
TCP & khởi động chậm. Các kết nối bền vững bây giờ cho thấy cải thiện rõ rệt:
đặc biệt với các mạng băng thông cao
Lớp Transport 111
Chương 3: Tổng kết
các nguyên lý của các dịch
vụ lớp transport
multiplexing,
demultiplexing
truyền dữ liệu tin cậy
điều khiển luồng
điều khiển tắc nghẽn
khởi tạo và hiện thực trong
Internet
UDP
TCP
Tiếp theo:
nghiên cứu xong các
vấn đề “ngoài biên”
(các lớp application,
transport)
chuẩn bị vào phần
“lõi” của mạng
File đính kèm:
bai_giang_mang_may_tinh_chuong_3_lop_transport.pdf



