tầng giao vận
TRANSCRIPT
1-1
Mạng maacutey tiacutenhBộ mocircn Kỹ thuật maacutey tiacutenh vagrave MạngKhoa Cocircng nghệ Thocircng tinĐại học Sư phạm Hagrave Nội
1-2
Chương 4 Tầng giao vậnMục điacutech Hiểu caacutec nguyecircn tắc
becircn trong dịch vụ của tầng giao vận Multiplexing
Demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Học về giao thức tầng giao vận trong Internet UDP khocircng hướng kết nối TCP hướng kết nối Điều khiển tắc nghẽn của
TCP
1-3
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-4
Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec
giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau
Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin
ứng dụng thagravenh caacutec segment chuyển tới tầng mạng
Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng
Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-5
Tầng giao vận vagrave tầng mạng
Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host
Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng
mạng
Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa
trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec
bức thư host = nhagrave Giao thức giao vận = Ann
vagrave Bill Giao thức tầng mạng = dịch
vụ chuyển thư
1-6
Caacutec giao thức tầng giao vận của Internet
Truyền tin cậy coacute 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
Truyền khocircng coacute thứ tự khocircng tin cậy UDP
Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-7
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-2
Chương 4 Tầng giao vậnMục điacutech Hiểu caacutec nguyecircn tắc
becircn trong dịch vụ của tầng giao vận Multiplexing
Demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Học về giao thức tầng giao vận trong Internet UDP khocircng hướng kết nối TCP hướng kết nối Điều khiển tắc nghẽn của
TCP
1-3
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-4
Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec
giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau
Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin
ứng dụng thagravenh caacutec segment chuyển tới tầng mạng
Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng
Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-5
Tầng giao vận vagrave tầng mạng
Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host
Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng
mạng
Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa
trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec
bức thư host = nhagrave Giao thức giao vận = Ann
vagrave Bill Giao thức tầng mạng = dịch
vụ chuyển thư
1-6
Caacutec giao thức tầng giao vận của Internet
Truyền tin cậy coacute 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
Truyền khocircng coacute thứ tự khocircng tin cậy UDP
Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-7
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-3
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-4
Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec
giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau
Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin
ứng dụng thagravenh caacutec segment chuyển tới tầng mạng
Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng
Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-5
Tầng giao vận vagrave tầng mạng
Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host
Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng
mạng
Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa
trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec
bức thư host = nhagrave Giao thức giao vận = Ann
vagrave Bill Giao thức tầng mạng = dịch
vụ chuyển thư
1-6
Caacutec giao thức tầng giao vận của Internet
Truyền tin cậy coacute 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
Truyền khocircng coacute thứ tự khocircng tin cậy UDP
Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-7
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-4
Caacutec giao thức vagrave dịch vụ tầng giao vận Cung cấp truyền thocircng locirc-giacutec
giữa caacutec tiến trigravenh ứng dụng chạy trecircn caacutec host khaacutec nhau
Caacutec giao thức giao vận chạy trecircn caacutec hệ thống cuối Becircn gửi chia caacutec bản tin
ứng dụng thagravenh caacutec segment chuyển tới tầng mạng
Becircn nhận gheacutep caacutec segment thagravenh bản tin chuyển lecircn tầng ứng dụng
Nhiều hơn một giao thức giao vận cho ứng dụng Internet TCP vagrave UDP
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-5
Tầng giao vận vagrave tầng mạng
Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host
Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng
mạng
Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa
trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec
bức thư host = nhagrave Giao thức giao vận = Ann
vagrave Bill Giao thức tầng mạng = dịch
vụ chuyển thư
1-6
Caacutec giao thức tầng giao vận của Internet
Truyền tin cậy coacute 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
Truyền khocircng coacute thứ tự khocircng tin cậy UDP
Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-7
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-5
Tầng giao vận vagrave tầng mạng
Tầng mạng truyền thocircng locirc-giacutec giữa caacutec host
Tầng giao vận truyền thocircng locirc-giacutec giữa caacutec tiến trigravenh dựa trecircn dịch vụ của tầng
mạng
Tương tự hộ gia đigravenh12 đứa trẻ gửi thư cho 12 đứa
trẻ Caacutec tiến trigravenh = caacutec đứa trẻ Caacutec bản tin ứng dụng = caacutec
bức thư host = nhagrave Giao thức giao vận = Ann
vagrave Bill Giao thức tầng mạng = dịch
vụ chuyển thư
1-6
Caacutec giao thức tầng giao vận của Internet
Truyền tin cậy coacute 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
Truyền khocircng coacute thứ tự khocircng tin cậy UDP
Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-7
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-6
Caacutec giao thức tầng giao vận của Internet
Truyền tin cậy coacute 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
Truyền khocircng coacute thứ tự khocircng tin cậy UDP
Caacutec dịch vụ khocircng coacute Đảm bảo độ trễ Đảm bảo băng thocircng
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
1-7
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-7
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-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
Chuyển caacutec segment đatilde nhận tới đuacuteng socket
Demultiplexing tại host nhậnThu thập dữ liệu từ caacutec socketđoacuteng goacutei dữ liệu bởi header (sau đoacute sẽ dugraveng để demultiplexing)
Multiplexing tại host gửi
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-9
Thực hiện demultiplexing Host nhận goacutei dữ liệu IP
Mỗi goacutei dữ liệu coacute địa chỉ IP nguồn địa chỉ IP điacutech
Mỗi goacutei dữ liệu mang một segment của tầng giao vận
Mỗi segment coacute giaacute trị cổng nguồn vagrave cổng điacutech (giaacute trị cổng cố định cho caacutec kiểu ứng dụng cụ thể)
Host sử dụng địa chỉ IP vagrave giaacute trị cổng để chuyển segment tới socket thiacutech hợp
source port dest port
32 bits
Dữ liệu ứng dụng (bản tin)
Caacutec trường header
Định dạng TCPUDP segment
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-10
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-11
UDP User Datagram Protocol [RFC 768]
Dịch vụ ldquobest effortrdquo UDP segment coacute thể mất chuyển khocircng theo thứ
tự đến ứng dụng Khocircng hướng kết nối
Khocircng coacute bắt tay giữa becircn gửi vagrave becircn nhận
Mỗi UDP segment được điều khiển độc lập
Tại sao coacute UDP Khocircng thiết lập kết nối (thiết
lập coacute thể tăng độ trễ) Đơn giản khocircng coacute trạng
thaacutei kết nối tại becircn gửi becircn nhận
Header của segment nhỏ Khocircng điều khiển tắc nghẽn
UDP coacute thể gửi ra với tốc độ mong muốn
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-12
UDP (tiếp) Thường sử dụng cho caacutec
ứng dụng đa phương tiện truyền dograveng Chấp nhận mất goacutei Nhạy cảm với tốc độ
Ứng dụng khaacutec sử dụng UDP DNS SNMP
Truyền tin cậy qua UDP thecircm sự tin cậy tại tầng ứng dụng Khocirci phục lỗi do ứng
dụng cụ thể
source port dest port
32 bits
dữ liệu của ứng dụng
(bản tin)
Định dạng của UDP segment
length checksumLength tiacutenh
theo byte củaUDP
segmentbao gồm
header
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-13
UDP checksum
Becircn gửi Đối xử với nội dung caacutec
segment như chuỗi caacutec số nguyecircn 16 biacutet
checksum cộng (tổng bugrave của 1) của nội dung segment
Phiacutea gửi đặt giaacute trị checksum trong trường checksum của UDP
Becircn nhận Tiacutenh toaacuten checksum của
segment nhận được Kiểm tra xem checksum đatilde
tiacutenh coacute bằng giaacute trị trường checksum KHOcircNG BẰNGndash Phaacutet hiện
coacute lỗi BẰNG ndash khocircng phaacutet hiện ra
lỗi Nhưng coacute thể coacute lỗi
Mục điacutech phaacutet hiện lỗi trong segment đatilde truyền
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-14
Viacute dụ Checksum Chuacute yacute
Khi cộng caacutec số giaacute trị biacutet nhớ cần thecircm vagraveo kết quả
Viacute dụ cộng hai số nguyecircn 16 biacutet
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
Tổngchecksum
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-15
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-16
Caacutec nguyecircn tắc của truyền dữ liệu tin cậy Tầm quan trọng của tầng liecircn kết dữ liệu tầng giao vận tầng
ứng dụng
Đặc điểm của kecircnh truyền khocircng tin cậy xaacutec định sự phức tạp của giao thức truyền dữ liệu tin cậy (rdt)
(a) Dịch vụ cung cấp (b) Cagravei đặt dịch vụ
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-17
Truyền dữ liệu tin cậy
Becircn gửi Becircn nhận
rdt_send() được gọi bởi tầng trecircn Dữ liệu đatilde chuyển được chuyển tới
tầng trecircn của becircn nhận
udt_send() gọi bởi rdt để truyền goacutei tin qua kecircnh khocircng
tin cậy tới becircn nhận
rdt_rcv() gọi khi goacutei tin đến phiacutea becircn nhận
deliver_data() được gọi bởi rdt để truyền dữ liệu lecircn tầng trecircn
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-18
Truyền dữ liệu tin cậy Sử dụng maacutey trạng thaacutei hữu hạn (FSM) để xử lyacute
becircn nhận vagrave becircn gửi
state1
state2
Sự kiện gacircy ra chuyển trạng thaacuteiHagravenh động khi chuyển trạng thaacutei
state khi trong 1 trạng thaacutei trạng thaacutei tiếp
theo lagrave duy nhất đối với 1 sự kiện
sự kiệnhagravenh động
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-19
rdt10 Truyền tin cậy qua kecircnh tin cậy
Tầng dưới lagrave truyền tin cậy Khocircng coacute lỗi biacutet Khocircng mất goacutei tin
FSM của becircn gửi vagrave becircn nhận Becircn gửi chuyển dữ liệu xuống kecircnh phiacutea dưới Becircn nhận đọc dữ liệu từ kecircnh becircn dưới
Đợi cuộc gọi từ
phiacutea trecircn packet = make_pkt(data)udt_send(packet)
rdt_send(data)extract (packetdata)deliver_data(data)
đợi cuộc gọi từ
phiacutea dưới
rdt_rcv(packet)
Becircn gửi Becircn nhận
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-20
Rdt20 kecircnh coacute lỗi biacutet
Kecircnh phiacutea dưới coacute thể coacute lỗi checksum để phaacutet hiện lỗi
Caacutech khocirci phục lỗi Baacuteo nhận (ACK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin nhận
thagravenh cocircng Baacuteo lỗi (NAK) becircn nhận chỉ rotilde cho becircn gửi goacutei tin coacute lỗi Becircn nhận truyền lại goacutei tin nếu nhận NAK
Cơ chế rdt20 Phaacutet hiện lỗi Phản hồi cho becircn nhận bản tin điều khiển (ACK NAK becircn
nhận -gt becircn gửi)
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-21
rdt20 Maacutey trạng thaacutei
Đợi cuộc gọi từ 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)
Đợi ACK hoặc NAK
Đợi cuộc gọi từ phiacutea
dướiBecircn gửi
Becircn nhậnrdt_send(data)
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-22
rdt20 Trường hợp khocircng lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-23
rdt20 Trường hợp coacute lỗi
đợi cuộc gọi từ phiacutea
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)
đợi ACK hoặc NAK
đợi cuộc gọi từ phiacutea
dưới
rdt_send(data)
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-24
rdt21 Becircn gửi điều khiển ACKNAK lỗi
đợi cuộc gọi 0 từ
trecircn
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)
rdt_send(data)
đợi 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)
đợi cuộc gọi 1 từ
trecircn
đợi ACK hoặc NAK
1
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-25
rdt21 Becircn nhận điều khiển ACKNAK lỗi
đợi 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)
đợi 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)
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-26
rdt21
Becircn gửi seq được thecircm vagraveo
goacutei tin Hai seq rsquos (01) Phải kiểm tra nếu
ACKNAK đatilde nhận coacute lỗi
Hai lần -gt ổn định
Becircn nhận Phải kiểm tra goacutei tin đatilde
nhận coacute lặp khocircng Trạng thaacutei chỉ định pkt
seq mong đợi lagrave 0 hay 1
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-27
rdt22 Giao thức NAK-free
Tương tự rdt21 chỉ sử dụng ACK Thay vigrave NAK becircn nhận phải gửi ACK cho pkt cuối đatilde
nhận OK ACK lặp tại becircn nhận sẽ như xử lyacute như nhận NAK
truyền lại pkt hiện tại
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-28
rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
đợi cuộc 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)
đợi ACK0
FSM becircn gửi
đợ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)FSM becircn nhận
L
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-29
rdt30 kecircnh coacute lỗi vagrave mất goacutei
Giả sử kecircnh phiacutea dưới coacute thể mất goacutei (dữ liệu hoặc ACK) checksum seq ACK
truyền lại lagrave khocircng đủ
Caacutech tiếp cận becircn nhận đợi ACK một thời gian
Truyền lại nếu khocircng coacute ACK nhận tại thời điểm nagravey
Nếu goacutei tin (hoặc ACK) trễ (khocircng mất) Truyền lại -gt lặp sử dụng
seq để giải quyết Becircn nhận phải gaacuten seq
của goacutei tin được ACK Đogravei hỏi bộ đếm thời gian
ngược
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-30
rdt30 Becircn gửi
sndpkt = make_pkt(0 data checksum)udt_send(sndpkt)start_timer
rdt_send(data)
đợi ACK 0
rdt_rcv(rcvpkt) ampamp ( corrupt(rcvpkt) ||isACK(rcvpkt1) )
đợi cuộc 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)
đợi cuộc gọi 0 từ trecircn
đợi ACK 1
rdt_rcv(rcvpkt)
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-31
rdt30
(a) Khocircng mất goacutei (b) Mất goacutei
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-32
rdt30
(c) Mất ACK (c) Timeout
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-33
Hiệu năng của rdt30
Hiệu năng của rdt30 bị ảnh hưởng Viacute dụ đường truyền 1 Gbps lan truyền 15 ms goacutei tin 1KB
T transmit = 8kbpkt109 bsec = 8 microsec
U sender sự sử dụng ndash thời gian becircn gửi bận gửi 1KB pkt trong mỗi 30 msec -gt 33kBsec thocircng lượng qua đường
truyền 1 Gbps Giao thức mạng hạn chế sử dụng tagravei nguyecircn vật lyacute
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
L (độ dagravei goacutei tin bit)R (tốc độ truyền bps)
=
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-34
rdt30 Hoạt động stop-and-wait
goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
goacutei tin cuối cugraveng truyền t = L R
biacutet của goacutei tin đầu tiecircn đếnbiacutet của goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp t = RTT + L R
U sender = 008
30008 = 000027
microseconds
L R RTT + L R
=
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-35
Caacutec giao thức PipelinePipeline Becircn gửi cho pheacutep nhiều tới caacutec goacutei tin được
ack Dải giaacute trị sequence phải tăng Vugraveng đệm tại becircn gửi vagrave becircn nhận
Hai higravenh thức chung của caacutec giao thức pipeline go-Back-N selective repeat
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-36
Pipelining Tăng hiệu quả sử dụng
Biacutet goacutei tin đầu tiecircn được truyền t = 0
Becircn gửi Becircn nhận
RTT
Biacutet cuối cugraveng được truyềnt = L R
Biacutet goacutei tin đầu tiecircn đếnBiacutet goacutei tin cuối cugraveng đến gửi ACK
ACK đến gửi goacutei tin tiếp theot = RTT + L R
Biacutet cuối cugraveng của goacutei tin thứ 2 đến gửi ACKBiacutet cuối cugraveng của goacutei tin 3 đến gửi ACK
U sender = 024
30008 = 00008
microseconds
3 L R RTT + L R
=
Tăng hiệu quả sử dụng lecircn 3 lần
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-37
Go-Back-NBecircn gửi k-bit seq trong pkt header ldquowindowrdquo N cho pheacutep caacutec goacutei tin khocircng ack liecircn tiếp
ACK(n) ACK mọi goacutei tin tới seq n - ldquoACK tiacutech lũyrdquo Coacute thể nhầm ACK lặp
Thời gian cho mỗi goacutei tin timeout(n) truyền lại goacutei tin n vagrave tất cả goacutei tin seq lớn hơn n trong
cửa sổ Lyacute do phải giới hạn N điều khiển luồng điều khiển tắc nghẽn
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-38
GBN FSM mở rộng của becircn gửi
đợi 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) pkt chưa được ack đầu tiecircn start_timer nextseqnum++ else refuse_data(data)
base = getacknum(rcvpkt)+1If (base == nextseqnum) tất cả caacutec pkt đều được ack stop_timer else vẫn cograven goacutei tin chưa được ack start_timer
rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)
base=1nextseqnum=1
rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)
Sử dụng một timer cho goacutei tin đatilde gửi vagrave chưa được ack vagrave cũ nhất
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-39
GBN FSM mở rộng của becircn nhận
ACK luocircn gửi ACK cho goacutei tin đatilde nhận đuacuteng với goacutei tin đuacuteng thứ tự seq nhất Coacute thể sinh ra ACK lặp Chỉ cần nhớ expectedseqnum
Goacutei tin khocircng đuacuteng thứ tự Loại bỏ (khocircng đưa vagraveo bộ nhớ đệm)
đợi
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)
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-40
GBN
Window size = 4 pkt
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-41
Selective Repeat
Becircn nhận ack riecircng cho mọi goacutei tin nhận đuacuteng Đưa goacutei tin vagraveo vugraveng đệm nếu cầu coacute thể sắp thứ tự
chuyển lecircn lớp trecircn Becircn gửi chỉ gửi lại goacutei tin khi khocircng nhận ACK
Bộ đếm thời gian becircn gửi cho mỗi goacutei tin khocircng được ACK Cửa sổ becircn nhận
N seq liecircn tục Giới hạn seq s gửi goacutei tin khocircng ACK
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-42
Selective repeat Cửa sổ becircn gửi becircn nhận
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-43
Selective repeat
Dữ liệu từ trecircn Nếu coacute seq tiếp trong cửa sổ
gửi goacutei tintimeout(n) Gửi lại goacutei tin n khởi tạo lại bộ
đếm thời gianACK(n) [sendbasesendbase+N]
Đaacutenh dấu goacutei tin n đatilde nhận Nếu n goacutei tin khocircng được ACK
nhỏ nhất if n smallest unACKed pkt chuyển cơ sở của cửa sổ tới seq khocircng được ACK tiếp
Becircn gửiGoacutei tin n [rcvbase rcvbase+N-1]
Gửi ACK(n) Khocircng đuacuteng thứ tự vugraveng đệm Đuacuteng thứ tự chuyển lecircn (cũng
coacute thể đưa vagraveo vugraveng đệm xếp thứ tự) cửa sổ chuyển tiếp tới goacutei tin đatilde nhận tiếp
pkt n [rcvbase-Nrcvbase-1]
ACK(n)Nếu khocircng Bỏ qua
Becircn nhận
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-44
Selective repeat
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-45
Selective repeat
Viacute dụ seq rsquos 0 1 2 3 Kiacutech thước cửa sổ=3
Becircn nhận thấy khocircng coacute sự khaacutec nhau trong 2 kịch bản
Chuyển khocircng đuacuteng dữ liệu như mới (a)
Q Quan hệ giữa kiacutech thước seq vagrave kiacutech thước cửa sổ
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-46
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-47
TCP Tổng quan RFC 793 1122 1323 2018 2581
Dữ liệu truyền song cocircng Luồng dữ liệu truyền hai
chiều trecircn cugraveng một kết nối
MSS maximum segment size
Hướng kết nối Bắt tay (trao đổi caacutec bản
tin điều khiển) becircn gửi khởi đầu
Điều khiển luồng Becircn gửi khocircng gửi quaacute
khả năng becircn nhận
Point-to-point Một becircn gửi một becircn nhận
Tin cậy coacute thứ tự Pipeline
Điều khiển tắc nghẽn vagrave điều khiển luồng của TCP thiết lập giaacute trị kiacutech thước cửa sổ
Vugraveng đệm gửi vagrave nhận
socketdoor
T C Psend buffer
TC Prece ive buffer
socketdoor
segm en t
applica tionwrites data
applicationreads data
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-48
Cấu truacutec của TCP segment
source port dest port
32 bits
dữ liệu ứng dụng(chiều dagravei thay đổi)
sequence numberacknowledgement number
Receive window
Urg data pnterchecksum
FSRPAUheadlen
notused
Options (chiều dagravei thay đổi)
URG urgent data (khocircng sử dụng)
ACK ACK
PSH push data(khocircng sử dụng)
RST SYN FINthiết lập kết nối
bytes becircn nhận muốn nhận
đếm số byte dữ liệu(khocircng phải segments)
Internetchecksum
(như trong UDP)
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-49
TCP seq vagrave ACKSeq
Giaacute trị của luồng byte của byte đầu tiecircn trong dữ liệu của segment
ACK seq của byte tiếp
theo mong nhận ACK tiacutech lũy
Q Becircn nhận điều khiển caacutec segment khocircng đuacuteng thứ tự A Chuẩn khocircng chỉ rotilde
tugravey thuộc vagraveo cagravei đặt cụ thể
Host A Host B
Seq=42 ACK=79 data = lsquoCrsquo
Seq=79 ACK=43 data = lsquoCrsquo
Seq=43 ACK=80
GotildelsquoCrsquo
host ACK đatilde nhận lsquoCrsquo baacuteo lại
host ACK đatilde nhận
lsquoCrsquo baacuteo lạilsquoCrsquo
timeKịch bản telnet
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-50
RTT vagrave Timeout trong TCP
Q Thiết lập giaacute trị timeout của TCP
Lớn hơn RTT RTT thay đổi
Quaacute nhỏ timeout sớm Khocircng cần thiết
truyền lại Quaacute lớn xử lyacute chậm
caacutec segment bị mất
Q Ước lượng RTT SampleRTT đo thời gian từ truyền
segment tới khi ACK được nhận Bỏ qua truyền lại
SampleRTT thay đổi ước lượng RTT chiacutenh xaacutec hơn Giaacute trị trung bigravenh của nhiều giaacute
trị đo gần đoacute
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-51
RTT vagrave timeout trong TCP
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
Giaacute trị thường dugraveng = 0125
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-52
Viacute dụ ước lượng RTT
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106time (seconnds)
RTT
(mill
isec
onds
)
SampleRTT Estimated RTT
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-53
RTT vagrave timeout của TCPThiết lập timeout EstimatedRTT cộng giới hạn an toagraven
Sự thay đổi lớn của EstimatedRTT -gt giaacute trị lề an toagraven lớn Ước lượng SampleRTT kế thừa từ EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(thường = 025)
Rồi thiết lập timeout
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-54
Chương 3 Tầng giao vận
31 Caacutec dịch vụ tầng giao vận
32 Multiplexing vagrave demultiplexing
33 Dịch vụ khocircng hướng kết nối UDP
34 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
35 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
36 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
37 Điều khiển tắc nghẽn của TCP
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-55
Truyền dữ liệu tin cậy của TCP
TCP tạo dịch vụ rdt trecircn dịch vụ khocircng tin cậy của IP
Pipelined segment ACK tiacutech lũy
Truyền lại khi Coacute sự kiện timeout Lặp ack
Xeacutet trường hợp becircn gửi Bỏ qua điều khiển luồng
điều khiển tắc nghẽn
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-56
Caacutec sự kiện của becircn gửi TCPNhận dữ liệu từ ứng dụng Tạo segment với seq seq lagrave giaacute trị luồng byte
của byte đầu tiecircn trong segment
Khởi tạo bộ đếm thời gian Chuyển segment tới IP Tiacutenh NextSeqNum
Timeout Truyền lại segment bị quaacute
hạn Tiacutenh timeout interval cho
segment truyền lại Khởi tạo lại bộ đếm thời gian Nhận Ack Nếu segment trước đoacute chưa
được ACK Cập nhật để biết đatilde ack
Nếu segment trước đoacute đatilde ACK Tăng bộ đếm ACK lặp lặp 3
lần thigrave truyền lại
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-57
Becircn gửiTCP (đơn giản)
NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) switch(event) event Nhận được dữ liệu từ tầng ứng dụng Tạo TCP segment với giaacute trị sequence NextSeqNum Khởi động timer cho segment NextSegNum Chuyển segment tới IP NextSeqNum = NextSeqNum + length(data)
event timer quaacute hạn cho segment coacute sequence number = yTruyền lại segment coacute sequence number = yTiacutenh timeout interval cho segment y
Khởi động timer cho segment y
event Nhận được ACK giaacute trị của trường ACK y if (y gt SendBase)
Bỏ timer của tất cả caacutec segment coacute sequence number lt y SendBase = y
else ACK lặp Tăng số ACK lặp của segment y
if (số lần ACK lặp của segment y == 3) Truyền lại segment với sequence number = y
Khởi động timer cho segment y
Giải thiacutechbull SendBase-1 byteđược ack tiacutech lũycuốiViacute dụbull SendBase-1 = 71y= 73 rcvrmuốn 73+ y gt SendBase vigrave thế dữ liệu mớiđược ack
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-58
TCP Kịch bản truyền lại
Host A
Seq=92 8 bytes dữ liệu
ACK=100
mất
timeo
ut
Kịch bản mất ACK
Host B
X
Seq=92 8 bytes dữ liệu
ACK=100
thời gian
SendBase= 100
Host A
Seq=100 20 bytes dữ liệu
ACK=100
thời giantimeout sớm
Host B
Seq=92 8 bytes dữ liệu
ACK=120
Seq=92 8 bytes dữ liệu
Seq
=92
timeo
ut
ACK=120
Seq
=92
timeo
ut
SendBase= 120
SendBase= 120
Sendbase= 100
Kịch bản khocircng truyền lại segment khi ACK đến trước timeout
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-59
Kịch bản truyền lạiHost A
Seq=92 8 bytes data
ACK=100
mất
timeo
ut
Kịch bản ACK tiacutech lũy
Host B
X
Seq=100 20 bytes data
ACK=120
thời gian
SendBase= 120
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-60
Truyền dữ liệu tin cậy của TCPGBN hay Selective Repeat
Giống GBN ACK tiacutech lũy Becircn gửi của TCP chỉ cần duy trigrave
Sequence number nhỏ nhất của goacutei tin đatilde gửi chưa được ack (sendbase)
Sequence number của byte tiếp theo sẽ gửi (nextseqnum)
Khaacutec GBN Timeout của segment coacute sequence number lagrave n chỉ gửi
lại segment n RFC 2018 - TCP Selective Acknowledgment Options
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-61
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-62
Điều khiển luồng TCP
Becircn nhận của kết nối TCP coacute buffer nhận
Dịch vụ tương ứng tốc độ tương ứng tốc độ gửi với tốc độ becircn nhận
Becircn gửi khocircng gửi lagravem tragraven vugraveng đệm becircn nhận truyền quaacute nhiều quaacute nhanh
Điều khiển luồng
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-63
Điều khiển luồng của TCP
(Giả sử becircn nhận bỏ segment khocircng đuacuteng thứ tự)
Khocircng gian cograven thừa trong buffer= RcvWindow= RcvBuffer-(LastByteRcvd ndash
LastByteRead) RcvWindow = 0
Becircn nhận thocircng tin về khocircng gian cograven thừa trong giaacute trị của RcvWindow trong segment
Becircn gửi hạn chế dữ liệu chưa ACK theo RcvWindow Đảm bảo buffer nhận
khocircng bị tragravenLastByteSent -
LastByteAcked lt= RcvWindow
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-64
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-65
Quản lyacute kết nối của TCPThiết lập kết nối Nhắc lại Becircn gửi becircn nhận
của TCP thiết lập kết nối trước khi trao đổi dữ liệu
Khởi tạo giaacute trị seq buffer thocircng tin điều
khiển luồng (viacute dụ RcvWindow)
Client khởi tạo kết nối Socket clientSocket = new
Socket(hostnameport number)
Server liecircn lạc bởi client Socket connectionSocket =
welcomeSocketaccept()
Bắt tay 3 đườngBước 1 Client gửi TCP SYN
segment tới server Chỉ định seq ban đầu Khocircng coacute dữ liệu
Bước 2 Server nhận SYN trả lời với SYNACK segment Server cấp phaacutet buffer Server khởi tạo seq
Bước 3 Client nhận SYNACK trả lời bằng ACK segment coacute thể chứa dữ liệu
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-66
Quản lyacute kết nối của TCP
Thiết lập kết nối
client
Connection request (SYN=1 seq=client_isn)
server
Connection granted (SYN=1 seq=server_isn
ack=client_isn+1
ack (SYN=0 seq=client_isn+1 ack=server_isn+1
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-67
Quản lyacute kết nối của TCP
Đoacuteng kết nối
client đoacuteng socket clientSocketclose()
Bước 1 client gửi TCP FIN tới server
Bước 2 server nhận FIN trả lời bằng ACK Đoacuteng kết nối gửi FIN
client
FIN
server
ACK
ACK
FIN
đoacuteng
đoacuteng
đoacuteng
thờ
i gia
n đơ
ị
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-68
Quản lyacute kết nối của TCP
Bước 3 client nhận FIN trả lời bằng ACK
Thời gian đợi trả lời bằng ACK baacuteo đatilde nhận FIN
Bước 4 server nhận ACK Kết nối đoacuteng
client
FIN
server
ACK
ACK
FIN
đang đoacuteng
đang đoacuteng
đoacuteng
thờ
i gia
n đợ
iđatilde đoacuteng
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-69
Quản lyacute kết nối của TCP
Chu kỳ hoạt độngTCP client
Chu kỳ hoạt độngTCP server
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-70
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-71
Nguyecircn tắc điều khiển tắc nghẽn
Tắc nghẽn Quaacute nhiều nguồn gửi quaacute nhiều dữ liệu nhanh quaacute
khả năng điều khiển của mạng Khaacutec điều khiển luồng Đặc điểm
Mất goacutei tin (tragraven buffer tại router) Độ trễ tăng (xếp hagraveng tại buffer của router)
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-72
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
Hai đối tượng gửi hai đối tượng nhận
Một router vugraveng đệm khocircng giới hạn
Khocircng truyền lại
Độ trễ lớn khi xảy ra tắc nghẽn
Tối đa thocircng lượng coacute thể đạt được
unlimited shared output link buffers
Host Alin original data
Host B
lout
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-73
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
Một router vugraveng đệm giới hạn Becircn gửi truyền lại goacutei tin mất
vugraveng đệm của đường truyền đầu ra dugraveng
chung vagrave coacute giới hạn
Host A lin dữ liệu ban đầu
Host B
lout
lin dữ liệu ban đầu dữ liệu truyền lại
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-74
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2 Luocircn luocircn (tốt)
Truyền lại ldquohoagraven hảordquo truyền lại chỉ khi mất
Sự truyền lại của goacutei tin bị trễ (khocircng mất) lagravem lớn hơn (trường hợp hoagraven hảo) so với
in
out=
in
outgt
inout
ldquoTaacutec hạirdquo của tắc nghẽn Xử lyacute nhiều hơn (truyền lại) Truyền lại khocircng cần thiết đường truyền mang nhiều bản sao cheacutep
của goacutei tin
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-75
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3 Bốn đối tượng gửi Nhiều đường timeouttruyền lại
in
Q Điều gigrave xảy ra khi vagrave tăng
in
vugraveng đệm của đường truyền ra dugraveng chung
vagrave coacute giới hạn
Host Ain dữ liệu ban đầu
Host B
outin dữ liệu ban đầu vagrave dữ liệu truyền lại
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-76
Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
Taacutec hại khaacutec của tắc nghẽn Khi goacutei tin bị loại bỏ khả năng truyền đường lecircn sử
dụng cho goacutei tin đoacute đatilde latildeng phiacute
Host A
Host B
o
u
t
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-77
Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
Điều khiển tắc nghẽn cuối-cuối
Khocircng coacute phản hồi chiacutenh thức từ mạng
Tắc nghẽn suy ra từ hệ thống cuối theo dotildei mất goacutei vagrave độ trễ
Caacutech tiếp cận sử dụng bởi TCP
Điều khiển tắc nghẽn với sự giuacutep đỡ của mạng
Router cung cấp phản hồi tới hệ thống cuối Một biacutet chỉ ra tắc nghẽn
(SNA DECbit TCPIP ECN ATM)
Chỉ rotilde tốc độ becircn gửi necircn gửi
Hai caacutech tiếp cận chiacutenh để điều khiển tắc nghẽn
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-78
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
ABR Available Bit Rate ldquoDịch vụ co datildenrdquo Nếu đường đi của becircn gửi
chưa đến giới hạn tải Becircn gửi necircn sử dụng
băng thocircng khả dụng Nếu đường đi của becircn gửi
bị tắc nghẽn Becircn gửi điều chỉnh tốc
độ đảm bảo tối thiểu
RM cell (Resource Management)
Được gửi bởi becircn gửi rải raacutec cugraveng với cell dữ liệu
Caacutec biacutet trong RM cell do switch thiết lập (coacute sự tham gia của mạng) NI bit khocircng tăng tốc độ (tắc
nghẽn nhẹ) CI bit tắc nghẽn
RM cell trả về cho becircn gửi bởi becircn nhận với caacutec biacutet khocircng thay đổi
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-79
Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
Hai byte ER (Explicit Rate) trong RM cell Switch tắc nghẽn coacute thể giảm giaacute trị ER trong cell Vigrave vậy tốc độ gửi của becircn gửi tối thiểu tốc độ hỗ trợ trecircn đường
Biacutet EFCI trong cell dữ liệu đặt bằng 1 trong switch bị tắc nghẽn Nếu cell dữ liệu trước cell RM coacute EFCI thiết lập becircn gửi thiết lập biacutet
CI trong cell RM trả về
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-80
Chương 4 Tầng giao vận
41 Caacutec dịch vụ tầng giao vận
42 Multiplexing vagrave demultiplexing
43 Dịch vụ khocircng hướng kết nối UDP
44 Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
45 Dịch vụ hướng kết nối TCP Cấu truacutec segment Truyền dữ liệu tin cậy Điều khiển luồng Quản lyacute kết nối
46 Caacutec nguyecircn tắc của điều khiển tắc nghẽn
47 Điều khiển tắc nghẽn của TCP
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-81
Điều khiển tắc nghẽn của TCP
Điều khiển end-end (khocircng coacute hỗ trợ của mạng)
Becircn gửi giới hạn truyền LastByteSent-LastByteAcked CongWinLastByteSent - LastByteAcked lt= minCongWin
RcvWin Gần đuacuteng
CongWin thay đổi động chức năng nhận biết sự tắc nghẽn của mạng
Caacutech becircn gửi nhận biết sự tắc nghẽn
Sự kiện mất goacutei = timeout hoặc lặp lại 3 ack
Becircn gửi TCP giảm tốc độ (CongWin) sau sự kiện mất goacutei
Ba cơ chế AIMD slow start Khocircng thay đổi sau sự kiện
timeout
rate = CongWin
RTT Bytessec
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-82
TCP AIMD
8 Kbytes
16 Kbytes
24 Kbytes
time
congestionwindow
Giảm cấp số nhacircn Giảm CongWin một nửa sau sự kiện mất goacutei
Tăng cấp số cộng Tăng CongWin 1 MSS mỗi RTT khi khocircng coacute sự kiện mất goacutei
Kết nối TCP trong thời gian dagravei
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-83
TCP Slow Start
Khi kết nối bắt đầu CongWin = 1 MSS Viacute dụ MSS = 500 byte amp
RTT = 200 msec Tốc độ ban đầu = 20 kbps
Băng thocircng khả dụng coacute thể gtgt MSSRTT Mong muốn nhanh tới tốc
độ đaacuteng kể
Khi kết nối bắt đầu tăng tốc độ nhanh theo hagravem mũ cho đến khi coacute sự kiện mất goacutei đầu tiecircn
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-84
TCP Slow Start (tiếp)
Khi kết nối bắt đầu tăng tốc độ hagravem mũ tới khi coacute sự kiện mất goacutei đầu tiecircn Gấp đocirci CongWin mỗi
RTT Thự hiện bằng caacutech tăng
CongWin cho mọi ACK nhận được
Toacutem lại tốc độ ban đầu lagrave chậm nhưng nhanh choacuteng tăng theo hagravem mũ
Host A
1 segment
RTT
Host B
time
2 segments
4 segments
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-85
Quaacute trigravenh tinh chỉnh Sau 3 ACK lặp lại
CongWin giảm một nửa window tăng tuyến tiacutenh
Nhưng sau sự kiện timeout CongWin thay vigrave thiết
lập 1 MSS window tăng hagravem mũ Tới ngưỡng thigrave giảm
tuyến tiacutenh
bull 3 ACK lặp chỉ rằng khả năng của mạng chuyển một số segment
bull timeout trước 3 ACK lặp lagrave đaacuteng chuacute yacute hơn
Triết lyacute
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-86
Quaacute trigravenh tinh chỉnh (tiếp)Q Khi nagraveo tăng theo số
mũ chuyển thagravenh theo tuyến tiacutenh
A Khi CongWin coacute giaacute trị bằng 12 giaacute trị của noacute trước khi timeout
Thực hiện Variable Threshold Tại sự kiện mất goacutei
Threshold đặt bằng frac12 CongWin ngay trước sự kiện mất goacutei
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-87
Tổng kết Điều khiển tắc nghẽn của TCP
Khi CongWin nhỏ hơn Threshold becircn gửi trong pha slow-start window lớn theo hagravem mũ
Khi CongWin lớn hơn Threshold becircn gửi trong pha congestion-avoidance window lớn theo hagravem tuyến tiacutenh
Khi xảy ra lặp 3 ACK Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng Threshold
Khi timeout xảy ra Threshold đặt bằng CongWin2 vagrave CongWin đặt bằng 1 MSS
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-88
Điều khiển tắc nghẽn becircn gửi của TCP
Sự kiện Trạng thaacutei Hagravenh động becircn gửi TCP Giải thiacutechNhận ACK cho dữ liệu khocircng được ack trước đoacute
Slow Start (SS)
CongWin = CongWin + MSS If (CongWin gt Threshold) Đặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Kết quả bởi gấp đocirci CongWin mỗi RTT
Nhận ACK cho dữ liệu khocircng được ack trước đoacute
CongestionAvoidance (CA)
CongWin = CongWin+MSS (MSSCongWin)
Tăng theo cấp số cộng tăng CongWin lecircn 1 MSS mỗi RTT
Sự kiện mất goacutei phaacutet hiện bởi 3 ACK lặp
SS hoặc CA Threshold = CongWin2 CongWin = ThresholdĐặt trạng thaacutei thagravenh ldquoCongestion Avoidancerdquo
Nhanh choacuteng phục hồi thực hiện tăng cấp số nhacircn CongWin sẽ khocircng giảm dưới 1 MSS
Timeout SS hoặc CA Threshold = CongWin2 CongWin = 1 MSSĐặt trạng thaacutei thagravenh ldquoSlow Startrdquo
Vagraveo slow start
ACK lặp SS hoặc CA Tăng bộ đếm ACK lặp cho segment được ack
CongWin vagrave Threshold khocircng thay đổi
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-89
Thocircng lượng của TCP
Thocircng lượng trung bigravenh của TCP từ chức năng của window size vagrave RTT Bỏ qua slow start
Cho W lagrave window size khi xảy ra mất goacutei Khi window lagrave W thocircng lượng lagrave WRTT Ngay sau mất goacutei window giảm tới W2
thocircng lượng W2RTT Thocircng lượng trung bigravenh 75 WRTT
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-90
Tương lai của TCP
Viacute dụ 1500 byte segment 100ms RTT muốn 10 Gbps thocircng lượng
Đogravei hỏi window size W = 83333 segment Thocircng lượng theo tốc độ mất goacutei
L = 210-10
Phiecircn bản mới của TCP cho tốc độ cao lagrave cần thiết
LRTTMSS221
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-91
Mục điacutech của sự cocircng bằng Nếu K phiecircn TCP dugraveng chung đường truyền thắt nuacutet băng thocircng R mỗi đường necircn coacute tốc độ trung bigravenh lagrave RK
Kết nối TCP 1
điểm thắt nuacutetkhả năng R
Kết nối TCP 2
Sự cocircng bằng của TCP
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-92
Lyacute do TCP cocircng bằngHai phiecircn cạnh tranh
R
R
Chia sẻ băng thocircng bằng nhau
Thocircng lượng của kết nối 1
Thocircn
g l ư
ợng
của
kết
nối
2
traacutenh tắc nghẽn tăng cộngmất goacutei giảm window hệ số 2
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-93
Sự cocircng bằng (tiếp)Sự cocircng bằng vagrave UDP Caacutec ứng dụng đa
phương tiện thường khocircng sử dụng TCP Khocircng muốn tốc độ giảm
bởi điều khiển tắc nghẽn Ứng dụng sử dụng
UDP Đẩy dữ liệu audiovideo
ở tốc độ hằng số chấp nhận mất goacutei
Sự cocircng bằng vagrave caacutec kết nối TCP song song
Khocircng ngăn chặn ứng dụng mở song song caacutec kết nối giữa 2 host
Trigravenh duyệt Web thực hiện như trecircn
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-94
Mocirc higravenh độ trễ
Q Thời gian để nhận một đối tượng từ Web server sau khi gửi một yecircu cầu
Bỏ qua tắc nghẽn độ trễ ảnh hưởng bởi
Thiết lập kết nối TCP Độ trễ truyền dữ liệu
Giả sử một đường truyền giữa client vagrave server coacute tốc độ R
S MSS (bits) O kiacutech thước đối tượng (bit) Khocircng truyền lại (khocircng mất
goacutei khocircng lỗi)
Kiacutech thước cửa sổ Cửa sổ tắc nghẽn cố định W
segment Cửa số động mocirc higravenh slow
start
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-95
Cửa sổ tắc nghẽn cố định
Trường hợp 1WSR gt RTT + SR ACK
cho segment đầu tiecircn trong cửa sổ
Độ trễ = 2RTT + OR
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-96
Cửa sổ tắc nghẽn cố định
Trường hợp 2 WSR lt RTT + SR đợi
ACK sau khi gửi lượng dữ liệu của cửa sổ
Độ trễ = 2RTT + OR+ (K-1)[SR + RTT - WSR]
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-97
Mocirc higravenh độ trễ TCP Slow Start (1)
Giả sử cửa sổ lớn theo slow start
Độ trễ cho một đối tượng lagrave
RS
RSRTTP
RORTTLatency P )12(2
Trong đoacute P lagrave lượng thời gian TCP rỗi tại server
1min KQP
- Trong đoacute Q lagrave lượng thời gian server rỗi nếu đối tượng kiacutech thước khocircng giới hạn- Vagrave K lagrave số cửa sổ trugravem qua đối tượng
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-98
Mocirc higravenh độ trễ TCP Slow Start (2)
RTT
initiate TCPconnection
requestobject
first w indow= S R
second w indow= 2S R
th ird w indow= 4S R
fourth w indow= 8S R
com pletetransm issionobject
de livered
tim e atc lient
tim e atserver
Viacute dụbull OS = 15 segmentbull K = 4 windowsbull Q = 2bull P = minK-1Q = 2
Thời gian rỗi của server P=2 times
Caacutec thagravenh phần trễbull 2 RTT để thiết lập kết nối vagrave yecircu cầubull OR để truyền đối tượngbull thời gian server rỗi vigrave slow start
Server rỗi P = minK-1Q times
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-99
Mocirc higravenh độ trễ TCP (3)
RS
RSRTTPRTT
RO
RSRTT
RSRTT
RO
idleTimeRTTRO
P
kP
k
P
pp
)12(][2
]2[2
2delay
1
1
1
RTT
in itia te TC Pconnection
requestobject
firs t window= S R
second w indow= 2S R
third window= 4S R
fourth w indow= 8SR
com pletetransm issionobject
delivered
tim e atc lient
tim e atserver
thời gian khi server bắt đầu gửi segment tới khi server nhận ack segment
thời gian để truyền cửa sổ thứ k
thời gian rỗi sau cửa sổ thứ k
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-100
Mocirc higravenh độ trễ TCP (4)
)1(log
)1(logmin
12min
222min
222min
2
2
110
110
SO
SOkk
SOk
SOk
OSSSkK
k
k
k
Tiacutenh Q giaacute trị rỗi cho đối tượng coacute kiacutech thước khocircng giới hạn tương tự
K = số cửa sổ bao đối tượngCaacutech tiacutenh K
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-101
Mocirc higravenh hoacutea HTTP Giả sử trang Web chứa
1 trang HTML cơ sở (kiacutech thước O biacutet) M ảnh (mỗi ảnh kiacutech thước O biacutet)
Non-persistent HTTP M+1 kết nối TCP Response time = (M+1)OR + (M+1)2RTT + tổng thời gian rỗi
Persistent HTTP 2 RTT để yecircu cầu vagrave nhận file HTML cơ sở 1 RTT để yecircu cầu vagrave nhận M ảnh Response time = (M+1)OR + 3RTT + tổng thời gian rỗi
Non-persistent HTTP với X kết nối song song Giả sử MX nguyecircn 1 kết nối TCP cho file cơ sở MX tập của caacutec kết nối song song cho ảnh Response time = (M+1)OR + (MX + 1)2RTT + tổng thời gian rỗi
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-102
02468
101214161820
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian trả lời HTTP (giacircy)RTT = 100 msec O = 5 Kbytes M=10 vagrave X=5
Đối với băng thocircng thấp thời gian kết nối vagrave thời gian phản hồi chi phối bởi thời gian truyềnPersistent connection chỉ mang lại cải tiến thecircm qua caacutec kết nối song song
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-103
0
10
20
30
40
50
60
70
28Kbps
100Kbps
1 Mbps 10Mbps
non-persistent
persistent
parallel non-persistent
Thời gian phản hồi (giacircy)RTT =1 sec O = 5 Kbyte M=10 and X=5
Đối với RTT lớn thời gian phản hồi chi phối bởi thiết lập kết nối TCP vagrave độ trễ slow start Persistent connection đem lại cải tiến quan trọng đặc biệt trong mạng delay bandwidth cao
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-
1-104
Chương 4 Tổng kết Caacutec nguyecircn tắc becircn trong
caacutec dịch vụ tầng giao vận multiplexing
demultiplexing Truyền dữ liệu tin cậy Điều khiển luồng Điều khiển tắc nghẽn
Sự thực hiện trong Internet UDP TCP
Tiếp theo Dừng tigravem hiểu phần becircn
ngoagravei của mạng (tầng ứng dụng tầng giao vận)
Tigravem hiểu vagraveo trong lotildei của mạng
- Mạng maacutey tiacutenh
- Chương 4 Tầng giao vận
- Slide 3
- Caacutec giao thức vagrave dịch vụ tầng giao vận
- Tầng giao vận vagrave tầng mạng
- Caacutec giao thức tầng giao vận của Internet
- Slide 7
- Multiplexingdemultiplexing
- Thực hiện demultiplexing
- Slide 10
- UDP User Datagram Protocol [RFC 768]
- UDP (tiếp)
- UDP checksum
- Viacute dụ Checksum
- Slide 15
- Caacutec nguyecircn tắc của truyền dữ liệu tin cậy
- Truyền dữ liệu tin cậy
- Slide 18
- rdt10 Truyền tin cậy qua kecircnh tin cậy
- Rdt20 kecircnh coacute lỗi biacutet
- rdt20 Maacutey trạng thaacutei
- rdt20 Trường hợp khocircng lỗi
- rdt20 Trường hợp coacute lỗi
- rdt21 Becircn gửi điều khiển ACKNAK lỗi
- rdt21 Becircn nhận điều khiển ACKNAK lỗi
- rdt21
- rdt22 Giao thức NAK-free
- rdt22 Phacircn mảnh tại becircn gửi vagrave becircn nhận
- rdt30 kecircnh coacute lỗi vagrave mất goacutei
- rdt30 Becircn gửi
- rdt30
- Slide 32
- Hiệu năng của rdt30
- rdt30 Hoạt động stop-and-wait
- Caacutec giao thức Pipeline
- Pipelining Tăng hiệu quả sử dụng
- Go-Back-N
- GBN FSM mở rộng của becircn gửi
- GBN FSM mở rộng của becircn nhận
- GBN
- Selective Repeat
- Selective repeat Cửa sổ becircn gửi becircn nhận
- Selective repeat
- Selective repeat
- Slide 45
- Slide 46
- TCP Tổng quan RFC 793 1122 1323 2018 2581
- Cấu truacutec của TCP segment
- TCP seq vagrave ACK
- RTT vagrave Timeout trong TCP
- RTT vagrave timeout trong TCP
- Viacute dụ ước lượng RTT
- RTT vagrave timeout của TCP
- Chương 3 Tầng giao vận
- Truyền dữ liệu tin cậy của TCP
- Caacutec sự kiện của becircn gửi TCP
- Becircn gửi TCP (đơn giản)
- TCP Kịch bản truyền lại
- Kịch bản truyền lại
- Truyền dữ liệu tin cậy của TCP GBN hay Selective Repeat
- Slide 61
- Điều khiển luồng TCP
- Điều khiển luồng của TCP
- Slide 64
- Quản lyacute kết nối của TCP
- Slide 66
- Slide 67
- Slide 68
- Slide 69
- Slide 70
- Nguyecircn tắc điều khiển tắc nghẽn
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 1
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 2
- Slide 74
- Nguyecircn nhacircn taacutec hại của tắc nghẽn Kịch bản 3
- Slide 76
- Caacutec caacutech tiếp cận để điều khiển tắc nghẽn
- Trường hợp nghiecircn cứu Điều khiển tắc nghẽn ATM ABR
- Slide 79
- Slide 80
- Điều khiển tắc nghẽn của TCP
- TCP AIMD
- TCP Slow Start
- TCP Slow Start (tiếp)
- Quaacute trigravenh tinh chỉnh
- Quaacute trigravenh tinh chỉnh (tiếp)
- Tổng kết Điều khiển tắc nghẽn của TCP
- Điều khiển tắc nghẽn becircn gửi của TCP
- Thocircng lượng của TCP
- Tương lai của TCP
- Sự cocircng bằng của TCP
- Lyacute do TCP cocircng bằng
- Sự cocircng bằng (tiếp)
- Mocirc higravenh độ trễ
- Cửa sổ tắc nghẽn cố định
- Slide 96
- Mocirc higravenh độ trễ TCP Slow Start (1)
- Mocirc higravenh độ trễ TCP Slow Start (2)
- Mocirc higravenh độ trễ TCP (3)
- Mocirc higravenh độ trễ TCP (4)
- Mocirc higravenh hoacutea HTTP
- PowerPoint Presentation
- Slide 103
- Chương 4 Tổng kết
-