Upload
huyen-duong
View
29
Download
1
Embed Size (px)
Citation preview
Transport Layer 3-1
Chương 3Lớp Transport
Computer Networking A Top Down Approach Featuring the Internet 3rd edition Jim Kurose Keith RossAddison-Wesley July 2004
Transport Layer 3-2
Chương 3 Lớp TransportMục tiecircu hiểu caacutec nguyecircn
tắc đằng sau caacutec 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
nghiecircn cứu về caacutec giao thức lớp Transport trecircn Internet UDP vận chuyển khocircng
kết nối (connectionless) TCP vận chuyển hướng
kết nối (connection-oriented)
điều khiển tắc nghẽn TCP
Transport Layer 3-3
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-4
Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic
chạy trecircn caacutec host khaacutec nhau
caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng
điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network
phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application
coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-5
Lớp Transport với lớp network lớp network truyền
thocircng logic giữa caacutec host
lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi
bật caacutec dịch vụ lớp network
Tigravenh huống tự nhiecircn tương tự
12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec
caacutec tiến trigravenh = caacutec đứa trẻ
caacutec thocircng điệp = thư trong bao thư
caacutec host = caacutec gia đigravenh giao thức transport =
Ann vagrave Bill giao thức lớp network
= dịch vụ bưu điện
Transport Layer 3-6
Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo
thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối
khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức
IP
khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-7
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-2
Chương 3 Lớp TransportMục tiecircu hiểu caacutec nguyecircn
tắc đằng sau caacutec 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
nghiecircn cứu về caacutec giao thức lớp Transport trecircn Internet UDP vận chuyển khocircng
kết nối (connectionless) TCP vận chuyển hướng
kết nối (connection-oriented)
điều khiển tắc nghẽn TCP
Transport Layer 3-3
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-4
Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic
chạy trecircn caacutec host khaacutec nhau
caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng
điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network
phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application
coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-5
Lớp Transport với lớp network lớp network truyền
thocircng logic giữa caacutec host
lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi
bật caacutec dịch vụ lớp network
Tigravenh huống tự nhiecircn tương tự
12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec
caacutec tiến trigravenh = caacutec đứa trẻ
caacutec thocircng điệp = thư trong bao thư
caacutec host = caacutec gia đigravenh giao thức transport =
Ann vagrave Bill giao thức lớp network
= dịch vụ bưu điện
Transport Layer 3-6
Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo
thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối
khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức
IP
khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-7
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-3
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-4
Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic
chạy trecircn caacutec host khaacutec nhau
caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng
điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network
phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application
coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-5
Lớp Transport với lớp network lớp network truyền
thocircng logic giữa caacutec host
lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi
bật caacutec dịch vụ lớp network
Tigravenh huống tự nhiecircn tương tự
12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec
caacutec tiến trigravenh = caacutec đứa trẻ
caacutec thocircng điệp = thư trong bao thư
caacutec host = caacutec gia đigravenh giao thức transport =
Ann vagrave Bill giao thức lớp network
= dịch vụ bưu điện
Transport Layer 3-6
Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo
thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối
khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức
IP
khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-7
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-4
Caacutec dịch vụ vagrave giao thức Transport cung cấp truyền thocircng logic
chạy trecircn caacutec host khaacutec nhau
caacutec giao thức transport chạy trecircn caacutec hệ thống đầu cuối phiacutea gửi cắt caacutec thocircng
điệp ứng dụng thagravenh caacutec đoạn chuyển cho lớp network
phiacutea nhận taacutei kết hợp caacutec đoạn thagravenh caacutec thocircng điệp chuyển cho lớp application
coacute nhiều hơn 1 giao thức transport dagravenh cho caacutec ứng dụng Internet TCP vagrave UDP
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-5
Lớp Transport với lớp network lớp network truyền
thocircng logic giữa caacutec host
lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi
bật caacutec dịch vụ lớp network
Tigravenh huống tự nhiecircn tương tự
12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec
caacutec tiến trigravenh = caacutec đứa trẻ
caacutec thocircng điệp = thư trong bao thư
caacutec host = caacutec gia đigravenh giao thức transport =
Ann vagrave Bill giao thức lớp network
= dịch vụ bưu điện
Transport Layer 3-6
Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo
thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối
khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức
IP
khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-7
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-5
Lớp Transport với lớp network lớp network truyền
thocircng logic giữa caacutec host
lớp transport truyền thocircng logic giữa caacutec tiến trigravenh dựa vagraveo vagrave lagravem nổi
bật caacutec dịch vụ lớp network
Tigravenh huống tự nhiecircn tương tự
12 đứa trẻ gửi thư đến 12 đứa trẻ khaacutec
caacutec tiến trigravenh = caacutec đứa trẻ
caacutec thocircng điệp = thư trong bao thư
caacutec host = caacutec gia đigravenh giao thức transport =
Ann vagrave Bill giao thức lớp network
= dịch vụ bưu điện
Transport Layer 3-6
Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo
thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối
khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức
IP
khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-7
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-6
Caacutec giao thức lớp transport trecircn Internet tin cậy truyền theo
thứ tự (TCP) điều khiển tắc nghẽn điều khiển luồng thiết lập kết nối
khocircng tin cậy truyền khocircng theo thứ tự UDP mở rộng của giao thức
IP
khocircng coacute caacutec dịch vụ bảo đảm trễ bảo đảm bandwidth
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Transport Layer 3-7
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-7
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-8
Multiplexingdemultiplexing
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= tiến trigravenh = socket
vận chuyển caacutec đoạn đatilde nhận được đến đuacuteng socket
Demultiplexing tại host nhậnthu nhặt dữ liệu từ nhiều socket đoacuteng goacutei dữ liệu vớiheader (sẽ dugraveng sau đoacute chodemultiplexing)
Multiplexing tại host gửi
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-9
Demultiplexing lagravem việc như thế nagraveo host nhận caacutec IP datagrams
mỗi datagram coacute địa chỉ IP nguồn vagrave IP điacutech
mỗi datagram mang 1 đoạn của lớp transport
mỗi đoạn coacute số port nguồn vagrave điacutech
host dugraveng địa chỉ IP amp số port để điều hướng đoạn đến socket thiacutech hợp
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(thocircng điệp)
caacutec header fields khaacutec
dạng thức đoạn TCPUDP
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-10
Demultiplexing khocircng kết nối
Tạo caacutec sockets với caacutec số port
DatagramSocket mySocket1 = new DatagramSocket(12534)
DatagramSocket mySocket2 = new DatagramSocket(12535)
UDP socket được xaacutec định bởi bộ 2
(địa chỉ IP số port điacutech)
Khi host nhận đoạn UDP kiểm tra port điacutech trong
đoạn điều hướng đoạn UDP
đến socket nagraveo phugrave hợp với số port đoacute
IP datagrams với địa chỉ IP nguồn vagravehoặc số port khaacutec nhau coacute thể được điều hướng đến cugraveng socket
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-11
Demultiplexing khocircng kết nối (tiếp)
DatagramSocket serverSocket = new DatagramSocket(6428)
ClientIPB
P2
client IP A
P1P1P3
serverIP C
SP 6428
DP 9157
SP 9157
DP 6428
SP 6428
DP 5775
SP 5775
DP 6428
SP cung cấp ldquođịa chỉ trở vềrdquo
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-12
Demultiplexing hướng kết nối
TCP socket được xaacutec định bởi bộ 4 địa chỉ IP nguồn số port nguồn địa chỉ IP điacutech số port điacutech
host nhận dugraveng cả 4 giaacute trị trecircn để điều hướng đoạn đến socket thiacutech hợp
Host server coacute thể hỗ trợ nhiều TCP socket đồng thời mỗi socket được xaacutec
định bởi bộ 4 của noacute
Web server coacute caacutec socket khaacutec nhau cho mỗi kết nối từ client kết nối HTTP khocircng bền
vững sẽ coacute socket khaacutec nhau cho mỗi yecircu cầu
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-13
Demultiplexing hướng kết nối (tiếp)
ClientIPB
P1
client IP A
P1P2P4
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-14
Demultiplexing hướng kết nối Threaded Web Server
ClientIPB
P1
client IP A
P1P2
serverIP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP A
D-IPC
S-IP B
SP 5775
DP 80
D-IPCS-IP B
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-15
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-16
UDP User Datagram Protocol [RFC 768]
giao thức Internet transport ldquođơn giản hoacuteardquo
dịch vụ ldquobest effortrdquo caacutec đoạn UDP coacute thể mất maacutet vận chuyển khocircng thứ
tự đến ứng dụng connectionless (khocircng
kết nối) khocircng bắt tay giữa
người nhận vagrave người gửi UDP
mỗi đoạn UDP được quản lyacute độc lập
Coacute UDP để lagravem gigrave khocircng thiết lập kết nối
(giuacutep coacute thể thecircm delay) đơn giản khocircng trạng
thaacutei kết nối tại nơi gửi nơi nhận
header của đoạn nhỏ khocircng điều khiển tắc
nghẽn UDP coacute thể gửi nhanh nhất theo mong muốn
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-17
UDP (tt)
thường dugraveng cho caacutec ứng dụng streaming multimedia chịu mất maacutet cảm nhận tốc độ
ngoagravei ra UDP dugraveng DNS SNMP
truyền tin cậy trecircn UDP thecircm khả năng nagravey tại lớp application sửa lỗi
source port dest port
32 bits
dữ liệu ứng dụng
(thocircng điệp)
dạng thức đoạn UDP
length checksumĐộ dagravei
đoạn UDPbao gồm cả
header
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-18
UDP checksum
Người gửi đối xử caacutec nội dung
đoạn như một chuỗi caacutec số nguyecircn 16-bit
checksum bổ sung(tổng bugrave 1) của caacutec nội dung đoạn
đặt giaacute trị checksum vagraveo trường UDP checksum
Người nhận tiacutenh toaacuten checksum của
đoạn đatilde nhận kiểm tra giaacute trị trecircn coacute bằng
với giaacute trị trong trường checksum NO ndash coacute lỗi xảy ra YES ndash khocircng coacute lỗi Nhưng coacute thể cograven lỗi
khaacutec nữa Xem tiếp phần sau hellip
Mục tiecircu kiểm tra caacutec ldquolỗirdquo (caacutec bit cờ đatilde bật lecircn) trong caacutec đoạn đatilde truyền
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-19
Viacute dụ Checksum Lưu yacute
Khi cộng caacutec số một bit nhớ ở phiacutea cao nhất coacute thể sẽ phải thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16-bit
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit dư
tổngchecksum
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-20
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-21
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-22
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-23
Caacutec nguyecircn lyacute truyền dữ liệu tin cậy quan trọng trong caacutec lớp application transport link lagrave danh saacutech 10 vấn đề quan trọng nhất của mạng
caacutec đặc thugrave của kecircnh truyền khocircng tin cậy sẽ xaacutec định sự phức tạp của giao thức truyền dữ liệu data transfer protocol (rdt)
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-24
Truyền dữ liệu tin cậy
sendside
receiveside
rdt_send() được gọi bởi lớp app Chuyển dữ liệu cần truyền
đến lớp cao hơn becircn nhận
udt_send() được gọi bởi rdt để truyền caacutec goacutei trecircn kecircnh khocircng tin cậy đến nơi
nhận
rdt_rcv() được gọi khi goacutei đến kecircnh becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu
đến lớp cao hơn
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-25
Truyền dữ liệu tin cậy
Sẽ chỉ xem xeacutet truyền dữ liệu theo 1 hướng duy
nhất nhưng điều khiển luồng thocircng tin sẽ theo cả 2
chiều
dugraveng maacutey trạng thaacutei hữu hạn (finite state machines-FSM) để xaacutec định người gửi người nhận
trthaacutei1
trthaacutei2
sự kiện gacircy ra trạng thaacutei truyềncaacutec hagravenh động xảy ra khi truyền
trạng thaacutei khi ở ldquotrạng thaacuteirdquo nagravey thigrave
trạng thaacutei kế tiếp duy nhất được xaacutec định bởi sự kiện kế
tiếp
sự kiệncaacutec hagravenh động
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-26
Rdt10 truyền dữ liệu tin cậy trecircn 1 kecircnh truyền tin cậy
kecircnh ưu tiecircn tin cậy hoagraven toagraven khocircng coacute caacutec lỗi khocircng mất maacutet caacutec goacutei
caacutec FSM phacircn biệt cho người gửi người nhận người gửi gửi dữ liệu vagraveo kecircnh ưu tiecircn người nhận nhận dữ liệu từ kecircnh ưu tiecircn
chờ gọi từ lớp trecircn packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packetdata)deliver_data(data)
chờ gọi từ lớp dưới
rdt_rcv(packet)
người gửi người nhận
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-27
Rdt20 kecircnh với caacutec lỗi
kecircnh ưu tiecircn coacute thể bật lecircn một số bit trong goacutei checksum để kiểm tra caacutec lỗi
Hỏi lagravem sao khocirci phục caacutec lỗi acknowledgements (ACKs) becircn nhận rotilde ragraveng thocircng
baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei tốt negative acknowledgements (NAKs) becircn nhận rotilde ragraveng
thocircng baacuteo cho becircn gửi rằng quaacute trigravenh nhận goacutei coacute lỗi người gửi gửi lại goacutei nagraveo được xaacutec nhận lagrave NAK
caacutec cơ chế mới trong rdt20 (sau rdt10) kiểm tra lỗi nhận phản hồi caacutec thocircng điệp điều khiển (ACKNAK)
becircn nhận becircn gửi
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-28
rdt20 đặc tả FSM
chờ gọi từ lớp trecircn
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
người gửi
người nhậnrdt_send(data)
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-29
rdt20 hoạt động khi khocircng lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-30
rdt20 hoạt động khi coacute lỗi
chờ gọi từ lớp dưới
snkpkt = make_pkt(data checksum)udt_send(sndpkt)
extract(rcvpktdata)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
chờ ACK hoặc NAK
chờ gọi từ lớp dưới
rdt_send(data)
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-31
rdt20 coacute lỗ hổng nghiecircm trọngĐiều gigrave xảy ra nếu
ACKNAK bị hỏng người gửi khocircng biết điều
gigrave đatilde xảy ra tại becircn nhận
khocircng thể đơn phương truyền lại khả năng trugraveng lặp
Quản lyacute trugraveng lặp người gửi truyền lại goacutei
hiện tại nếu ACKNAK bị hỏng
người gửi thecircm số thứ tự vagraveo mỗi goacutei
người nhận hủy (khocircng nhận) goacutei trugraveng lặp
Người gửi gửi 1 goacutei sau đoacute dừng lại chờ phản hồitừ người nhận
dừng vagrave chờ
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-32
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ gọi 0 từ lớp trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
chờ ACK hoặc NAK
0 udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isNAK(rcvpkt) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt)
chờ gọi 1 từ lớp trecircn
chờ ACK hoặc NAK
1
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-33
rdt21 người gửi quản lyacute caacutec ACKNAK bị hỏng
chờ 0 từ dưới
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq0(rcvpkt)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
chờ 1 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq0(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp not corrupt(rcvpkt) ampamp has_seq1(rcvpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt)
sndpkt = make_pkt(ACK chksum)udt_send(sndpkt)
sndpkt = make_pkt(NAK chksum)udt_send(sndpkt)
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-34
rdt21 thảo luận
người gửi số thứ tự thecircm vagraveo
goacutei chỉ cần hai số thứ tự
(01) lagrave đủ Tại sao phải kiểm tra nếu việc
nhận ACKNAK bị hỏng
số trạng thaacutei tăng lecircn 2 lần trạng thaacutei phải ldquonhớrdquo
goacutei ldquohiện tạirdquo coacute số thứ tự lagrave 0 hay 1
người nhận phải kiểm tra coacute
nhận trugraveng goacutei khocircng trạng thaacutei chỉ rotilde coacute
hay khocircng mong chờ số thứ tự 0 hoặc 1
chuacute yacute người nhận khocircng biết ACKNAK vừa rồi của noacute coacute được người gửi nhận tốt hay khocircng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-35
rdt22 một giao thức khocircng cần NAK
chức năng giống như rdt21 chỉ dugraveng caacutec ACK thay cho NAK người nhận gửi ACK cho goacutei vừa
rồi đatilde nhận tốt người nhận phải rotilde ragraveng chegraven số thứ tự của goacutei vừa ACK
trugraveng ACK tại người gửi hậu quả giống như hagravenh động của NAK truyền lại goacutei vừa rồi
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-36
rdt22 gửi nhận caacutec mảnh
Chờ cho gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) || isACK(rcvpkt1) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
Chờ cho ACK
0
gửi phacircn mảnhFSM
Chờ cho gọi
0 từ dưới
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp has_seq1(rcvpkt)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(ACK1 chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) ampamp (corrupt(rcvpkt) || has_seq1(rcvpkt))
udt_send(sndpkt)
nhận phacircn mảnhFSM
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-37
rdt30 caacutec kecircnh với lỗi vagrave mất maacutet
Giả định mới kecircnh ưu tiecircn cũng coacute thể lagravem mất caacutec goacutei (dữ liệu hoặc caacutec ACK) checksum số thứ tự
caacutec ACK caacutec việc truyền lại sẽ hỗ trợ nhưng khocircng đủ
Caacutech tiếp cận người gửi chờ ACK trong khoảng thời gian ldquochấp nhận đượcrdquo
truyền lại nếu khocircng nhận ACK trong khoảng thời gian nagravey
nếu goacutei (hoặc ACK) chỉ trễ (khocircng mất) truyền lại sẽ gacircy trugraveng
nhưng dugraveng số thứ tự sẽ giải quyết được
người nhận phải xaacutec định số thứ tự của goacutei vừa gửi ACK
cần bộ định thigrave đếm lugravei
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-38
rdt30 gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Chờ cho
ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
Chờ cho gọi 1 từ trecircn
sndpkt = make_pkt(1 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt0)
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt0) )
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt) ampamp isACK(rcvpkt1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Chờ cho gọi 0 từ trecircn
Chờ cho
ACK 1
rdt_rcv(rcvpkt)
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-39
hagravenh động của rdt30
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-40
hagravenh động của rdt30
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-41
Hiệu suất của rdt30
rdt30 lagravem việc được nhưng đaacutenh giaacute hiệu suất hơi rắc rối viacute dụ liecircn kết 1 Gbps trễ lan truyền giữa hai đầu cuối lagrave 15
ms goacutei 1KB
T truyền = 8kbpkt109 bsec
= 8 microsec
U sender độ khả dụng ndash
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
L (độ dagravei goacutei tiacutenh bằng bits)R (tốc độ truyền bps)
=
goacutei 1KB mỗi 30 msec -gt 33kBs trecircn đường truyền 1 Gbps giao thức network hạn chế việc dugraveng caacutec tagravei nguyecircn vật
lyacute
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-42
rdt30 hoạt động dừng-vagrave-chờ
goacutei đầu tiecircn đatilde truyền t = 0
gửi nhận
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacutei kế tiếp t = RTT + L R
U sender
= 008
30008 = 000027
microseconds
L R
RTT + L R =
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-43
Caacutec giao thức Pipelined
Pipelining người gửi cho pheacutep gửi nhiều goacutei đồng thời khocircng cần chờ baacuteo nhận được nhoacutem caacutec số thứ tự phải tăng dần phải coacute bộ nhớ đệm tại nơi gửi vagravehoặc nơi nhận
hai dạng phổ biến của caacutec giao thức pipelined go-Back-N Lặp coacute lựa chọn
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-44
Pipelining độ khả dụng tăng
goacutei đầu tiecircn đatilde truyền t = 0
sender receiver
RTT
goacutei cuối cugraveng đatilde truyền t = L R
goacutei đầu tiecircn đatilde đếngoacutei cuối cugraveng đatilde đến gửi ACK
ACK đến gửi goacuteikế tiếp t = RTT + L R
bit cuối của goacutei thứ 2 đến gửi ACKbit cuối của goacutei thứ 3 đến gửi ACK
U sender
= 024
30008 = 00008
microseconds
3 L R
RTT + L R =
Độ khả dụng tăng lecircngấp 3 lần
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-45
Go-Back-NBecircn gửi k-bit số thứ tự trong header của goacutei ldquocửa sổrdquo tăng lecircn đến N cho pheacutep gửi caacutec goacutei liecircn tục khocircng cần ACK
ACK(n) ACKs tất cả caacutec goacutei đến chứa số thứ tự n ndash ldquoACK tiacutech lũyrdquo coacute thể nhận caacutec ACK trugraveng lặp (xem becircn nhận)
định thigrave cho mỗi goacutei trecircn đường truyền timeout(n) gửi lại goacutei n vagrave tất cả caacutec goacutei coacute số thứ tự cao
hơn trong cửa sổ
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-46
GBN becircn gửi mở rộng FSM
chờ start_timerudt_send(sndpkt[base])udt_send(sndpkt[base+1])hellipudt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum lt base+N) sndpkt[nextseqnum] = make_pkt(nextseqnumdatachksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) stop_timer else start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-47
GBN becircn nhận mở rộng FSM
ACK-duy nhất luocircn luocircn gửi ACK cho goacutei đatilde nhận đuacuteng với số thứ tự xếp hạng cao nhất coacute thể sinh ra caacutec ACK trugraveng nhau chỉ cần nhớ expectedseqnum
goacutei khocircng theo thứ tự hủy -gt khocircng nhận vagraveo bộ đệm gửi lại ACK với số thứ tự xếp hạng cao nhất
chờ
udt_send(sndpkt)
default
rdt_rcv(rcvpkt) ampamp notcurrupt(rcvpkt) ampamp hasseqnum(rcvpktexpectedseqnum)
extract(rcvpktdata)deliver_data(data)sndpkt = make_pkt(expectedseqnumACKchksum)udt_send(sndpkt)expectedseqnum++
expectedseqnum=1sndpkt = make_pkt(expectedseqnumACKchksum)
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-48
GBN hoạt động
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-49
Lặp coacute lựa chọn
becircn nhận thocircng baacuteo đatilde nhận đuacuteng tất cả từng goacutei một đệm (buffer) caacutec goacutei nếu cần thiết
becircn gửi chỉ gửi lại caacutec goacutei nagraveo khocircng nhận được ACK becircn gửi định thigrave đối với mỗi goacutei khocircng gửi ACK
cửa sổ becircn gửi N số thứ tự liecircn tục hạn chế số thứ tự caacutec goacutei khocircng gửi ACK
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-50
Lặp coacute lựa chọn caacutec cửa sổ gửi nhận
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-51
Lặp coacute lựa chọn
dữ liệu từ lớp trecircn nếu số thứ tự kế tiếp sẵn
sagraveng trong cửa sổ gửi goacutei
timeout(n) gửi lại goacutei n taacutei khởi tạo
bộ định thigrave
ACK(n) trong [sendbasesendbase+N]
đaacutenh dấu goacutei n lagrave đatilde nhận nếu goacutei khocircng ACK coacute n
nhỏ nhất dịch chuyển cửa sổ base đến số thứ tự khocircng ACK kế tiếp
Gửigoacutei n trong [rcvbase
rcvbase+N-1]
gửi ACK(n) khocircng thứ tự đệm
(buffer) coacute thứ tự truyền (cũng
truyền caacutec goacutei đatilde đệm coacute thứ tự) dịch chuyển cửa sổ đến goacutei chưa nhận kế tiếp
goacutei n trong [rcvbase-Nrcvbase-1]
ACK(n)
ngược lại lờ đi
Nhận
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-52
Hoạt động của lặp coacute lựa chọn
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-53
Lặp coacute lựa chọntigravenh trạng khoacute giải quyếtViacute dụ Số thứ tự 0 1 2 3 Kiacutech thước cửa sổ = 3
becircn nhận khocircng thấy sự khaacutec nhau trong 2 tigravenh huống
chuyển khocircng chiacutenh xaacutec dữ liệu trugraveng lặp như dữ liệu mới trong (a)
Hỏi quan hệ giữa datildey số thứ tự vagrave kiacutech thước cửa sổ
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-54
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-55
TCP Tổng quan RFCs 793 1122 1323 2018 2581
dữ liệu full duplex luồng dữ liệu đi 2 chiều
trong cugraveng một kết nối MSS maximum
segment size ndash kiacutech thước đoạn tối đa
hướng kết nối bắt tay (trao đổi caacutec
thocircng điệp điều khiển) trạng thaacutei becircn gửi becircn nhận trước khi trao đổi dữ liệu
điều khiển luồng becircn gửi sẽ khocircng lấn aacutet
becircn nhận
point-to-point một becircn gửi một becircn
nhận tin cậy dograveng byte coacute
thứ tự khocircng ldquoranh giới thocircng
điệprdquo kecircnh liecircn lạc
TCP điều khiển luồng vagrave tắc nghẽn thiết lập kiacutech thước cửa sổ
caacutec bộ đệm gửi amp nhận
socketdoor
T C Psend buffer
T C Preceive buffer
socketdoor
segm ent
applicationwrites data
applicationreads data
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-56
TCP cấu truacutec đoạn
port nguồn port điacutech
32 bits
dữ liệu ứng dụng(độ dagravei thay đổi)
số thứ tự
số ACKcửa sổ nhận
con trỏ URGchecksum
FSRPAUheadlen
notused
Tugravey chọn (độ dagravei thay đổi)
URG dữ liệu khẩn cấp(thường khocircng dugraveng)
ACK ACK hợp lệ
PSH push data now(thường khocircng dugraveng)
RST SYN FINthiết lập kết nối
(caacutec lệnh thiết lậpchia nhỏ)
số byte becircn nhận sẵn sagraveng chấp nhận
đếm bởi số bytecủa dữ liệu
Internetchecksum
(giống UDP)
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-57
Caacutec số thứ tự TCP vagrave ACKCaacutec số thứ tự
dograveng byte ldquođaacutenh sốrdquo byte đầu tiecircn trong dữ liệu của đoạn
caacutec ACK số thứ tự của byte
kế tiếp được chờ đợi từ phiacutea becircn kia
ACK tiacutech lũyHỏi lagravem thế nagraveo becircn
nhận quản lyacute caacutec đoạn khocircng thứ tự Trả lời TCP khocircng
đề cập tugravey thuộc người hiện thực
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
UsernhậplsquoCrsquo
host ACKsnhận phản hồi
lsquoCrsquo
host ACKsbaacuteo nhận
lsquoCrsquo phản hồingược lại lsquoCrsquo
timetigravenh huống telnet đơn giản
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-58
TCP Round Trip Time vagraveTimeout
Hỏi Lagravem thế nagraveo để thiết lập giaacute trị TCP timeout
dagravei hơn RTT khaacutec với RTT
quaacute ngắn timeout sớm truyền lại khocircng
cần thiết quaacute dagravei phản ứng
chậm đối với việc mất maacutet goacutei
Hỏi Lagravem thế nagraveo để thiết lập RTT
SampleRTT thời gian được đo từ khi truyền đoạn đến khi baacuteo nhận ACK lờ đi việc truyền lại
SampleRTT sẽ thay đổi muốn ước lượng RTT ldquomượt hơnrdquo tiacutenh trung bigravenh một số giaacute
trị đo được gần đoacute khocircng chỉ SampleRTT hiện tại
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-59
TCP Round Trip Time vagrave Timeout
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
giaacute trị đặc trưng = 0125
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-60
Viacute dụ đaacutenh giaacute RTTRTT gaiacsumassedu to fantasiaeurecomfr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-61
TCP Round Trip Time vagrave Timeout
Thiết lập timeout EstimtedRTT cộng ldquohệ số dự trữ an toagravenrdquo
sự biến thiecircn lớn trong EstimatedRTT -gt hệ số dự trữ an toagraven lớn hơn ước lượng đầu tiecircn về sự biến thiecircn của SampleRTT từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(tiecircu biểu = 025)
Sau đoacute thiết lập timeout interval
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-62
TCP truyền dữ liệu tin cậy
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy IP
caacutec đoạn Pipelined caacutec ACK tiacutech lũy TCP dugraveng bộ định thigrave
truyền lại đơn
Truyền lại được kiacutech hoạt bởi caacutec sự kiện timeout caacutec ack trugraveng lặp
luacutec đầu khảo saacutet caacutec becircn gửi TCP đơn giản lờ đi caacutec ack trugraveng lặp lờ đi điều khiển luồng
điều khiển tắc nghẽn
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-63
TCP caacutec sự kiệndữ liệu đatilde nhận từ ứng
dụng tạo đoạn với số thứ
tự của noacute số thứ tự lagrave số theo
byte dữ liệu đầu tiecircn khởi động bộ định thigrave
nếu chưa chạy khoảng thời gian hết
hạn TimeOutInterval
timeout gửi lại đoạn nagraveo gacircy
ra timeout khởi động lại bộ định
thigrave Ack đatilde nhận
cập nhật caacutei gigrave sẽ được ACK
khởi động bộ định thigrave nếu coacute caacutec đoạn cograven chờ
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-64
TCP becircn 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 gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Chuacute thiacutechbull SendBase-1 byte vừa được ACK tiacutech lũy Viacute dụbull SendBase-1 = 71y= 73 vigrave thế becircn nhận muốn 73+ y gt SendBase vigrave thế dữ liệu mới được chấp nhận
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-65
TCP caacutec tigravenh huống truyền lại
Host A
Seq=100 20 bytes data
ACK=100
timetimeout sớm
Host B
Seq=92 8 bytes data
ACK=120
Seq=92 8 bytes data
Seq=
92
tim
eout
ACK=120
Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
tigravenh huống mất ACK
Host B
X
Seq=92 8 bytes data
ACK=100
time
Seq=
92
tim
eout
SendBase= 100
SendBase= 120
SendBase= 120
Sendbase= 100
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-66
TCP caacutec tigravenh huống truyền lại (tt)Host A
Seq=92 8 bytes data
ACK=100
loss
tim
eout
Cumulative ACK scenario
Host B
X
Seq=100 20 bytes data
ACK=120
time
SendBase= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122 RFC 2581]
Sự kiện tại becircn nhận
Đoạn đến với đuacuteng số thứ tự mong muốn Tất cả dữ liệu đếnđatilde được ACK
Đoạn đến với đuacuteng số thứ tự mong muốn Một đoạn khaacutec đangchờ ACK
Caacutec đoạn đến khocircng thứ tựlớn hơn số thứ tự đoạn mong muốnCoacute khoảng trống
Đoạn đếnlấp đầy từng phần hoặc toagraven bộkhoảng trống
TCP becircn nhận hagravenh động
ACK trễ Chờ đến 500mscho đoạn kế tiếp Nếu khocircng coacute đoạnkế tiếp gửi ACK
Gửi ngay một ACK tiacutech lũy chấp nhậncho cả caacutec đoạn theo thứ tự
Gửi ngay ACK trugraveng 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 lagrave đoạnbắt đầu ngay điểm coacute khoảng trống
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-68
Truyền lại nhanh
Chu kỳ Time-out thường tương đối dagravei độ trễ dagravei trước khi gửi
lại goacutei đatilde mất
Xaacutec nhận caacutec đoạn đatilde mất bằng caacutec ACK trugraveng lặp becircn gửi thường gửi
nhiều đoạn song song Nếu đoạn bị mất sẽ
xảy ra tigravenh trạng giống như nhiều ACK trugraveng nhau
Nếu becircn gửi nhận 3 ACK của cugraveng một dữ liệu noacute cho lagrave đoạn sau dữ liệu đatilde ACK bị mất Truyền lại nhanh gửi
lại đoạn trước khi bộ định thigrave hết hạn
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-69
sự kiện ACK đatilde nhận với trường lagrave y if (y gt 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 trugraveng lặp cho đoạn đatilde được ACK
Truyền lại nhanh
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-70
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-71
TCP điều khiển luồng
becircn nhận của kết nối TCP coacute một bộ đệm nhận
dịch vụ so trugraveng tốc độ so trugraveng tốc độ gửi với tốc độ nhận của ứng dụng
tiến trigravenh ứng dụng coacute thể chậm tại luacutec đọc bộ đệm
becircn gửi sẽ khocircng lagravem tragraven bộ đệm vigrave truyền quaacute nhiều vagrave
quaacute nhanh
điều khiển luồng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-72
TCP điều khiển luồng caacutech lagravem
(Giả sử becircn nhận TCP loại bỏ caacutec đoạn khocircng coacute thứ tự)
dự phograveng trong bộ đệm= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
Becircn nhận thocircng baacuteo khoảng dự trữ nhờ giaacute trị RcvWindow trong caacutec đoạn
Becircn gửi hạn chế dữ liệu khocircng được ACK vagraveo RcvWindow bảo đảm bộ đệm nhận
khocircng tragraven
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-73
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-74
TCP quản lyacute kết nối
Chuacute yacute Becircn gửi vagrave becircn nhận TCP thiết lập ldquokết nốirdquo trước khi trao đổi dữ liệu
khởi tạo caacutec biến TCP caacutec số thứ tự đoạn thocircng tin caacutec 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(hostnameport
number) server được tiếp xuacutec bởi
client Socket connectionSocket =
welcomeSocketaccept()
3 phương phaacutep bắt tay
Bước 1 client host gửi đoạnTCP SYN đến server xaacutec định số thứ tự khởi đầu khocircng phải dữ liệu
Bước 2 server host nhận SYN trả lời với đoạn SYNACK
server cấp phaacutet caacutec bộ đệm
xaacutec định số thứ tự khởi đầuBước 3 client nhận SYNACK trả
lời với đoạn ACK (coacute thể chứa dữ liệu)
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-75
TCP quản lyacute kết nối (tt)
Đoacuteng một kết nối
client đoacuteng socket clientSocketclose()
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 Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đatilde đoacutengthời g
ian c
hờ
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-76
TCP quản lyacute kết nối (tt)
Bước 3 client nhận FIN trả lời với ACK
Trong khoảng ldquothời gian chờrdquo ndash sẽ phản hồi với ACK để nhận caacutec FIN
Bước 4 server nhận ACK Kết nối đatilde đoacuteng
Chuacute yacute với một sửa đổi nhỏ coacute thể quản lyacute nhiều FIN đồng thời
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đatilde đoacuteng
thời g
ian c
hờ
đatilde đoacuteng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-77
TCP quản lyacute kết nối (tt)
chu kỳ sống củaTCP client
chu kỳ sống củaTCP server
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-78
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-79
Caacutec nguyecircn lyacute điều khiển tắc nghẽn
Tắc nghẽn ldquoquaacute nhiều nguồn gửi quaacute nhanh vagrave quaacute nhiều
dữ liệu đến mạngrdquo khaacutec với điều khiển luồng caacutec biểu hiện
caacutec goacutei bị mất (tragraven bộ đệm tại caacutec router) caacutec độ trễ quaacute dagravei (xếp hagraveng trong bộ đệm
của router) lagrave 1 trong 10 vấn đề nan giải nhất
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-80
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 1
2 gửi 2 nhận 1 router caacutec bộ
đệm khocircng giới hạn
khocircng coacute truyền lại
caacutec độ trễ lớn hơn khi tắc nghẽn
năng suất coacute thể đạt tối đa
unlimited shared output link buffers
Host Ain original data
Host B
out
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-81
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2
1 router caacutec bộ đệm coacute giới hạn becircn gửi truyền lại caacutec goacutei đatilde mất
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host A in dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-82
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 2 luocircn luocircn
truyền lại ldquohoagraven toagravenrdquo chỉ khi mất maacutet
truyền lại vigrave trễ (khocircng mất) lagravem cho lớn hơn với cugraveng
in
out
=
in
out
gt
in
out
ldquocaacutec chi phiacuterdquo của tắc nghẽn nhiều việc (truyền lại) caacutec truyền lại khocircng cần thiết liecircn kết nhiều bản sao của
goacutei
R2
R2in
ou
t
b
R2
R2in
ou
t
a
R2
R2in
ou
t
c
R4
R3
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-83
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3 4 người gửi caacutec đường qua nhiều hop timeouttruyền lại
in
Hỏi điều gigrave xảy ra nếu vagrave tăng lecircn
in
chia sẻ vocirc hạncaacutec bộ đệm ouput
Host Ain dữ liệu gốc
Host B
out
in dữ liệu gốc cugraveng với dữ liệu truyền lại
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-84
Caacutec nguyecircn nhacircnchi phiacute của tắc nghẽn tigravenh huống 3
ldquochi phiacuterdquo khaacutec của tắc nghẽn khi caacutec goacutei bị bỏ bất kỳ ldquokhả năng truyền
upstream dugraveng cho goacutei đoacute sẽ bị latildeng phiacuterdquo
Host A
Host B
o
u
t
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-85
Caacutec caacutech 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
khocircng coacute phản hồi rotilde ragraveng từ mạng
tắc nghẽn được suy ra từ việc quan saacutet caacutec hệ thống đầu cuối coacute mất maacutet trễ
tiếp cận được quản lyacute bởi TCP
điều khiển tắc nghẽn coacute sự hỗ trợ của mạng
caacutec router cung cấp phản hồi về caacutec hệ thống đầu cuối 1 bit duy nhất chỉ thị
tắc nghẽn (SNA DECbit TCPIP ECN ATM)
tốc độ sẽ gửi được xaacutec định rotilde ragraveng
2 caacutech
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-86
Viacute dụ điều khiển tắc nghẽn ATM ABR
ABR tốc độ bit sẵn sagraveng
ldquodịch vụ mềm dẻordquo nếu đường gửi ldquochưa
hếtrdquo becircn gửi sẽ dugraveng
băng thocircng sẵn sagraveng nếu đường gửi tắc
nghẽn becircn gửi điều tiết với
tốc độ tối thiểu
RM (resource management)
gửi bởi becircn gửi rải raacutec với caacutec ocirc dữ liệu
caacutec bit trong ocirc thiết lập bởi caacutec switch bit NI khocircng tăng tốc độ
(tắc nghẽn nhẹ) bit CI tắc nghẽn rotilde rệt
Caacutec ocirc RM được trả về becircn gửi từ becircn nhận với nguyecircn vẹn caacutec bit
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-87
Viacute dụ điều khiển tắc nghẽn ATM ABR
trường 2-byte ER trong ocirc RM switch đatilde tắc nghẽn coacute thể coacute giaacute trị ER thấp hơn trong ocirc tốc độ gửi do đoacute coacute thể được hỗ trợ tối đa trecircn đường
EFCI bit trong caacutec ocirc dữ liệu được cagravei giaacute trị 1 trong switch đatilde tắc nghẽn nếu ocirc dữ liệu đứng trước ocirc RM coacute cagravei EFCI becircn gửi sẽ cagravei
bit CI trong ocirc RM trả về
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-88
Chương 3 Nội dung trigravenh bagravey
31 Caacutec dịch vụ lớp Transport
32 Multiplexing vagrave demultiplexing
33 Vận chuyển khocircng kết nối UDP
34 Caacutec nguyecircn lyacute của việc truyền dữ liệu tin cậy
35 Vận chuyển hướng kết nối TCP cấu truacutec phacircn đoạn truyền dữ liệu tin cậy điều khiển luồng quản lyacute kết nối
36 Caacutec nguyecircn lyacute của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn TCP
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-89
TCP điều khiển tắc nghẽn additive tăng lecircn multiplicative giảm xuống
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Caacutech tiếp cận tăng tốc độ truyền (kiacutech thước cửa sổ) tigravem khả năng băng thocircng coacute thể cho đến khi coacute mất maacutet xảy ra additive tăng lecircn tăng CongWin bởi 1 MSS
mỗi RTT cho đến khi coacute mất maacutet xảy ra multiplicative giảm xuống bỏ CongWin trong
nửa giai đoạn sau khi mất maacutet
timekiacutech
thư
ớc
cửa
sổ
tắc
nghẽ
n
Tigravem kiếm băng thocircng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-90
TCP điều khiển tắc nghẽn chi tiết
becircn gửi hạn chế việc truyền LastByteSent-LastByteAcked
CongWin Cocircng thức
CongWin thay đổi chức năng lagrave nhận biết tắc nghẽn trecircn mạng
Lagravem thế nagraveo becircn gửi nhận biết tắc nghẽn
mất maacutet xảy ra = timeout hoặc 3 ack trugraveng lặp
becircn gửi giảm tốc độ (CongWin) sau khi mất maacutet xảy ra
3 cơ chế AIMD khởi động chậm thận trọng sau khi coacute
caacutec sự kiện timeout
tốc độ = CongWin
RTT Bytess
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-91
TCP khởi động chậm
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 bytes
amp RTT = 200 ms tốc độ khởi tạo = 20
kbps
băng thocircng sẵn sagraveng coacute thể gtgt MSSRTT mong muốn nhanh
choacuteng tăng tốc lecircn tốc độ coacute thể đaacutep ứng
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-92
TCP khởi động chậm (tt)
Khi kết nối bắt đầu tăng tốc lecircn rất nhanh cho đến khi sự cố mất maacutet xảy ra đầu tiecircn nhacircn đocirci CongWin mỗi
RTT hoagraven thagravenh nhờ tăng CongWin ứng với mỗi ACK đatilde nhận
Tổng kết tốc độ khởi đầu lagrave chậm nhưng sau đoacute tăng tốc rất nhanh
Host A
1 đoạn
RTT
Host B
thời gian
2 đoạn
4 đoạn
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-93
Tinh chếHỏi Khi nagraveo việc tăng
tốc trở thagravenh tuyến tiacutenh
Trả lời Khi CongWin đạt đến 12 giaacute trị của noacute trước khi timeout
Hiện thực Ngưỡng thay đổi Tại thời điểm coacute sự cố
mất maacutet ngưỡng được cagravei giaacute trị bằng frac12 của CongWin ngay trước đoacute
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-94
Tinh chế nhận biết mất maacutet
Sau 3 ACK trugraveng lặp CongWin sẽ giảm 12 kiacutech thước cửa sổ
tăng tuyến tiacutenh nhưng sau sự cố
timeout CongWin thay giaacute trị
bằng 1 MSS kiacutech thước cửa sổ
tăng cấp lũy thừa khi đến một ngưỡng
thigrave tăng tuyến tiacutenh
3 ACK trugraveng nhau chỉ ra khả năng truyền của mạng timeout chỉ thị ldquonhiều cảnh baacuteordquo về tigravenh huống tắc nghẽn
Nguyecircn lyacute
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-95
Tổng kết TCP điều khiển tắc nghẽn
Khi CongWin dưới Threshold becircn gửi đang trong giai đoạn khởi động chậm kiacutech thước cửa sổ tăng nhanh theo cấp lũy thừa
Khi CongWin trecircn Threshold becircn gửi đang trong giai đoạn traacutenh tắc nghẽn kiacutech thước cửa sổ tăng nhanh theo cấp tuyến tiacutenh
Khi coacute 3 ACK trugraveng lặp xảy ra Threshold = CongWin2 vagrave CongWin = Threshold
Khi timeout xảy ra Threshold = CongWin2 vagrave CongWin = 1 MSS
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-96
TCP điều khiển tắc nghẽn becircn gửi
Trạng thaacutei Sự kiện TCP becircn gửi hagravenh động Diễn giải
Slow Start (SS)-Khởi động chậm
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin + MSS If (CongWin gt Threshold) cagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Hậu quả lagravem tăng gấp đocirci CongWin mỗi RTT
CongestionAvoidance (CA) ndashTraacutenh tắc nghẽn
ACK baacuteo nhận cho dữ liệu chưa ACK trước đoacute
CongWin = CongWin+MSS (MSSCongWin)
Additive tăng lecircn lagravem tăng CongWin lecircn 1 MSS mỗi RTT
SS hoặc CA Sự cố mất maacutet xảy ra khi thấy coacute 3 ACK trugraveng lặp
Threshold = CongWin2 CongWin = Thresholdcagravei đặt trạng thaacutei ldquoTraacutenh tắc nghẽnrdquo
Khocirci phục nhanh hiện thực giảm xuống multiplicative CongWin sẽ khocircng giảm xuống dưới 1 MSS
SS hoặc CA Timeout Threshold = CongWin2 CongWin = 1 MSScagravei đặt trạng thaacutei ldquoKhởi động chậmrdquo
Vagraveo chế độ ldquoKhởi động chậmrdquo
SS hoặc CA ACK trugraveng lặp
Đếm ACK tăng lecircn cho đoạn vừa được ACK
CongWin vagrave Threshold khocircng thay đổi
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-97
TCP throughput
Throughout trung bigravenh của TCP biểu diễn qua kiacutech thước của sổ vagrave RTT Bỏ qua trạng thaacutei ldquoKhởi động chậmrdquo
Cho W lagrave kiacutech thước cửa sổ khi coacute mất maacutet xảy ra
Khi kiacutech thước cửa sổ = W lưu lượng = WRTT
Chỉ ngay sau khi mất maacutet cửa sổ giảm xuống = W2 lưu lượng = W2RTT
throughout trung bigravenh 075 WRTT
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-98
TCP tương lai
Viacute dụ caacutec đoạn dagravei 1500 byte RTT 100ms lưu lượng 10 Gbps
Kiacutech thước cửa sổ yecircu cầu W = 83333 đoạn trecircn đường truyền
Lưu lượng trong caacutec trường hợp mất maacutet
L = 210-10
Phiecircn bản mới của TCP dagravenh cho nhu cầu tốc độ cao
LRTT
MSS221
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-99
Mục tiecircu nếu K phiecircn lagravem việc TCP chia sẻ kết nối cổ chai của băng thocircng lagrave R mỗi phiecircn coacute tốc độ trung bigravenh lagrave RK
TCP kết nối 1
router cổ chaikhả năng R
TCP kết nối 2
TCP tiacutenh cocircng bằng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-100
Tại sao phải TCP cocircng bằng
2 phiecircn lagravem 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 thocircng bằng nhau
Connection 1 throughputConnect
ion 2
th
roughput
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
traacutenh tắc nghẽn additive tăng lecircnmất maacutet giảm cửa sổ bằng 12
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-101
TCP tiacutenh cocircng bằng (tt)
Tiacutenh cocircng bằng amp UDP nhiều ứng dụng
thường khocircng dugraveng TCP khocircng muốn tốc độ bị
điều tiết do điều khiển tắc nghẽn
Thay bằng dugraveng UDP truyền audiovideo với
tốc độ ổn định chịu được mất maacutet
Nghiecircn cứu giao thức thacircn thiện với TCP
Tiacutenh cocircng bằng amp caacutec kết nối TCP song song
khocircng coacute gigrave ngăn cản việc ứng dụng mở caacutec kết nối song song giữa 2 host
Trigravenh duyệt Web lagravem giống như thế
Viacute dụ tốc độ R hỗ trợ 9 kết nối ứng dụng mới yecircu cầu 1
TCP coacute tốc độ R10 ứng dụng mới yecircu cầu 11
TCP coacute tốc độ R2
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-102
Mocirc higravenh trễ
Hỏi Mất bao lacircu để nhận 1 đối tượng từ Web server sau khi gửi yecircu 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 caacutec giả định Giả sử một kết nối giữa
client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng
(bits) khocircng truyền lại (khocircng
mất maacutet khocircng hỏng)
Kiacutech thước cửa sổ Giả định 1 cửa sổ tắc
nghẽn cố định coacute W đoạn Sau đoacute cửa sổ thay đổi
mocirc higravenh khởi động chậm
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-103
Cửa sổ tắc nghẽn cố định (1)
Trường hợp đầu tiecircnWSR gt RTT + SR cho
đoạn đầu tiecircn trong cửa sổ trả về trước khi cửa sổ dữ liệu gửi ACK
trễ = 2RTT + OR
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-104
Cửa sổ tắc nghẽn cố định (2)
Trường hợp thứ hai WSR lt RTT + SR sent
chờ cho ACK sau khi gửi dữ liệu
trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-105
TCP Mocirc higravenh trễ Khởi động chậm (1)
Bacircy giờ giả sử kiacutech thước cửa sổ tăng lecircn tugravey theo quaacute trigravenh khởi động chậm
Độ trễ của một đối tượng sẽ lagrave
R
S
R
SRTTP
R
ORTTLatency P )12(2
trong đoacute P lagrave số lần TCP rảnh ở tại server
1min KQP
- trong đoacute Q lagrave số lần server rảnh nếu đối tượng đatilde khởi tạo kiacutech thước
- vagrave K lagrave số lượng cửa sổ bao trugravem đối tượng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-106
TCP Mocirc higravenh trễ Khởi động chậm (2)
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 đoạnbull K = 4 cửa sổbull Q = 2bull P = minK-1Q = 2
Server rảnh P=2 lần
Caacutec thagravenh phần trễbull 2 RTT dagravenh cho thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbullthời gian server rảnh bởi vigrave khởi động chậm
Server rảnh P = minK-1Q lần
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-107
TCP Mocirc higravenh trễ(3)
R
S
R
SRTTPRTT
R
O
R
SRTT
R
SRTT
R
O
idleTimeRTTR
O
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
th window after the timeidle 2 1 kR
SRTT
R
S k
ementacknowledg receivesserver until
segment send tostartsserver when from time RTTR
S
window kth the transmit totime2 1
R
Sk
RTT
initia te TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
third w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-108
TCP Mocirc higravenh trễ (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
S
OS
Okk
S
Ok
SOk
OSSSkK
k
k
k
caacutech tiacutenh toaacuten Q tương tự (xem HW)
K = số lượng cửa sổ bao trugravem đối tượngLagravem thế nagraveo tiacutenh được K
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-109
HTTP Mocirc higravenh Giả sử trang Web chứa
1 trang HTML (kiacutech thước O bits) M higravenh ảnh (mỗi caacutei kiacutech thướcO bits)
HTTP khocircng bền vững M+1 TCP kết nối Thời gian đaacutep ứng = (M+1)OR + (M+1)2RTT + tổng số thời
gian rảnh HTTP bền vững
2 RTT để yecircu cầu vagrave nhận file HTML 1 RTT để yecircu cầu vagrave nhận M higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + 3RTT + tổng số thời gian
rảnh HTTP khocircng bền vững với X kết nối song song
Giả sử MX lagrave số nguyecircn 1 TCP kết nối cho file MX thiết lập caacutec kết nối song song cho caacutec higravenh ảnh Thời gian đaacutep ứng = (M+1)OR + (MX + 1)2RTT + tổng số
thời gian rảnh
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-110
02468
101214161820
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Với băng thocircng thấp thời gian kết nối amp đaacutep ứng trội hơn thời gian truyền
Caacutec kết nối bền vững chỉ cho sự cải thiện khocircng đaacuteng kể trecircn caacutec kết nối song song
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-111
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1Mbps
10Mbps
non-persistent
persistent
parallel non-persistent
HTTP thời gian đaacutep ứng (giacircy)
RTT =1 sec O = 5 Kbytes M=10 and X=5
Với RTT lớn hơn thời gian đaacutep ứng trội hơn thời gian trễ chờ thiết lập kết nốiTCP amp khởi động chậm Caacutec kết nối bền vững bacircy giờ cho thấy cải thiện rotilde rệt đặc biệtvới caacutec mạng băng thocircng cao
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng
Transport Layer 3-112
Chương 3 Tổng kết caacutec nguyecircn lyacute của caacutec
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 vagrave hiện thực trong Internet UDP TCP
Tiếp theo nghiecircn cứu xong
caacutec vấn đề ldquongoagravei biecircnrdquo (caacutec lớp application transport)
chuẩn bị vagraveo phần ldquolotildeirdquo của mạng